Merge "Save/restore display lists' canvas properly"
This commit is contained in:
@@ -9995,6 +9995,7 @@ public class View implements Drawable.Callback, Drawable.Callback2, KeyEvent.Cal
|
|||||||
}
|
}
|
||||||
|
|
||||||
final HardwareCanvas canvas = mDisplayList.start();
|
final HardwareCanvas canvas = mDisplayList.start();
|
||||||
|
int restoreCount = 0;
|
||||||
try {
|
try {
|
||||||
int width = mRight - mLeft;
|
int width = mRight - mLeft;
|
||||||
int height = mBottom - mTop;
|
int height = mBottom - mTop;
|
||||||
@@ -10004,6 +10005,8 @@ public class View implements Drawable.Callback, Drawable.Callback2, KeyEvent.Cal
|
|||||||
canvas.onPreDraw(null);
|
canvas.onPreDraw(null);
|
||||||
|
|
||||||
computeScroll();
|
computeScroll();
|
||||||
|
|
||||||
|
restoreCount = canvas.save();
|
||||||
canvas.translate(-mScrollX, -mScrollY);
|
canvas.translate(-mScrollX, -mScrollY);
|
||||||
mPrivateFlags |= DRAWN | DRAWING_CACHE_VALID;
|
mPrivateFlags |= DRAWN | DRAWING_CACHE_VALID;
|
||||||
mPrivateFlags &= ~DIRTY_MASK;
|
mPrivateFlags &= ~DIRTY_MASK;
|
||||||
@@ -10015,6 +10018,7 @@ public class View implements Drawable.Callback, Drawable.Callback2, KeyEvent.Cal
|
|||||||
draw(canvas);
|
draw(canvas);
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
|
canvas.restoreToCount(restoreCount);
|
||||||
canvas.onPostDraw();
|
canvas.onPostDraw();
|
||||||
|
|
||||||
mDisplayList.end();
|
mDisplayList.end();
|
||||||
|
|||||||
Reference in New Issue
Block a user