| Index: Source/core/rendering/RenderBlock.cpp
|
| diff --git a/Source/core/rendering/RenderBlock.cpp b/Source/core/rendering/RenderBlock.cpp
|
| index 66e6126d4009e68919bbc0b2771651602a68ec54..a7b4d75a80a1e7a4a565eec948246a377757af24 100644
|
| --- a/Source/core/rendering/RenderBlock.cpp
|
| +++ b/Source/core/rendering/RenderBlock.cpp
|
| @@ -362,8 +362,12 @@ void RenderBlock::styleDidChange(StyleDifference diff, const RenderStyle* oldSty
|
|
|
| void RenderBlock::repaintTreeAfterLayout()
|
| {
|
| + bool maybeInvalidated = mayNeedInvalidation();
|
| RenderBox::repaintTreeAfterLayout();
|
|
|
| + if (!maybeInvalidated)
|
| + return;
|
| +
|
| // Take care of positioned objects. This is required as LayoutState keeps a single clip rect.
|
| if (TrackedRendererListHashSet* positionedObjects = this->positionedObjects()) {
|
| TrackedRendererListHashSet::iterator end = positionedObjects->end();
|
| @@ -1625,6 +1629,7 @@ void RenderBlock::layoutPositionedObjects(bool relayoutChildren, PositionedLayou
|
|
|
| // FIXME: this should only be set from clearNeedsLayout crbug.com/361250
|
| r->setLayoutDidGetCalled(true);
|
| + r->setMayNeedInvalidation(true);
|
|
|
| SubtreeLayoutScope layoutScope(*r);
|
| // A fixed position element with an absolute positioned ancestor has no way of knowing if the latter has changed position. So
|
|
|