From 2e6c78cdb7407a27b6604ea0cb2903e5bdb8fd4a Mon Sep 17 00:00:00 2001 From: Adam Barth Date: Tue, 11 Aug 2015 14:38:49 -0700 Subject: [PATCH] Don't paint twice In refactoring the way we generate the SkPicture, I accidentially made us generate the SkPicture twice. This CL causes us to generate it only once. --- sky/packages/sky/lib/rendering/box.dart | 2 -- sky/packages/sky/lib/rendering/object.dart | 4 +++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sky/packages/sky/lib/rendering/box.dart b/sky/packages/sky/lib/rendering/box.dart index d1250f5af7c..b9f729b3db9 100644 --- a/sky/packages/sky/lib/rendering/box.dart +++ b/sky/packages/sky/lib/rendering/box.dart @@ -1678,8 +1678,6 @@ class ViewConstraints { } class RenderView extends RenderObject with RenderObjectWithChildMixin { - bool get createNewDisplayList => true; - RenderView({ RenderBox child, this.timeForRotation: const Duration(microseconds: 83333) diff --git a/sky/packages/sky/lib/rendering/object.dart b/sky/packages/sky/lib/rendering/object.dart index 845bd74576a..cfa42e7ae4d 100644 --- a/sky/packages/sky/lib/rendering/object.dart +++ b/sky/packages/sky/lib/rendering/object.dart @@ -164,7 +164,6 @@ abstract class RenderObject extends AbstractNode implements HitTestTarget { return true; }); _nodesNeedingLayout.add(this); - _nodesNeedingPaint.add(this); scheduler.ensureVisualUpdate(); } static void flushLayout() { @@ -331,6 +330,9 @@ abstract class RenderObject extends AbstractNode implements HitTestTarget { _needsPaint = true; _nodesNeedingPaint.add(this); scheduler.ensureVisualUpdate(); + } else if (parent == null) { + _needsPaint = true; + scheduler.ensureVisualUpdate(); } else { assert(parent != null); // parent always exists on this path because the root node is a RenderView, which sets createNewDisplayList. if (parent is RenderObject) {