예제 #1
0
        void _didUpdatePainter(CustomPainter newPainter, CustomPainter oldPainter)
        {
            if (newPainter == null)
            {
                D.assert(oldPainter != null);
                markNeedsPaint();
            }
            else if (oldPainter == null ||
                     newPainter.GetType() != oldPainter.GetType() ||
                     newPainter.shouldRepaint(oldPainter))
            {
                markNeedsPaint();
            }

            if (attached)
            {
                oldPainter?.removeListener(markNeedsPaint);
                newPainter?.addListener(markNeedsPaint);
            }
        }
예제 #2
0
 public override void attach(object owner)
 {
     base.attach(owner);
     _painter?.addListener(markNeedsPaint);
     _foregroundPainter?.addListener(markNeedsPaint);
 }