mirror of
https://github.com/flutter/flutter
synced 2024-08-27 12:00:58 +00:00
Specs: Simplify the paint model. Now you are not responsible for
actually telling your child to paint, you just say where it would paint. The platform then takes care of making sure all the dirty nodes have their paint() methods called. Review URL: https://codereview.chromium.org/744843003
This commit is contained in:
parent
edcbad7686
commit
eedc2410f2
|
@ -69,22 +69,20 @@
|
|||
let loop = children.next();
|
||||
while (!loop.done) {
|
||||
let child = loop.value;
|
||||
if (child.needsPaint || child.descendantNeedsPaint) {
|
||||
canvas.save();
|
||||
try {
|
||||
canvas.beginPath();
|
||||
canvas.moveTo(child.x, child.y + cellDim/4);
|
||||
canvas.lineTo(child.x + cellDim/2, child.y);
|
||||
canvas.lineTo(child.x + cellDim, child.y + cellDim/4);
|
||||
canvas.lineTo(child.x + cellDim, child.y + 3*cellDim/4);
|
||||
canvas.lineTo(child.x + cellDim/2, child.y + cellDim);
|
||||
canvas.moveTo(child.x, child.y + 3*cellDim/4);
|
||||
canvas.closePath();
|
||||
canvas.clip();
|
||||
this.paintChild(child);
|
||||
} finally {
|
||||
canvas.restore();
|
||||
}
|
||||
canvas.save();
|
||||
try {
|
||||
canvas.beginPath();
|
||||
canvas.moveTo(child.x, child.y + cellDim/4);
|
||||
canvas.lineTo(child.x + cellDim/2, child.y);
|
||||
canvas.lineTo(child.x + cellDim, child.y + cellDim/4);
|
||||
canvas.lineTo(child.x + cellDim, child.y + 3*cellDim/4);
|
||||
canvas.lineTo(child.x + cellDim/2, child.y + cellDim);
|
||||
canvas.moveTo(child.x, child.y + 3*cellDim/4);
|
||||
canvas.closePath();
|
||||
canvas.clip();
|
||||
canvas.paintChild(child);
|
||||
} finally {
|
||||
canvas.restore();
|
||||
}
|
||||
loop = children.next();
|
||||
}
|
||||
|
|
|
@ -188,9 +188,9 @@ SKY MODULE
|
|||
let children = this.walkChildren();
|
||||
let loop = children.next();
|
||||
while ((!loop.done) && (loop.value != this.firstSkippedChild))
|
||||
this.paintChild(loop.value, canvas);
|
||||
canvas.paintChild(loop.value);
|
||||
if (this.showingOverflow)
|
||||
this.paintChild(this.overflowChild, canvas);
|
||||
canvas.paintChild(this.overflowChild);
|
||||
}
|
||||
function inChild(child, x, y) {
|
||||
return (x >= child.x) && (y >= child.y) && (x < child.x+child.width) && (y < child.y+child.height);
|
||||
|
|
Loading…
Reference in a new issue