Chromium Code Reviews| Index: third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp |
| diff --git a/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp b/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp |
| index 656b4effafa988901318f24c2df30272ccbf154b..b79cdb52ae4bc24963782bc7a981484cbaa5a080 100644 |
| --- a/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp |
| +++ b/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp |
| @@ -682,6 +682,17 @@ bool PaintLayerScrollableArea::updateAfterLayout(SubtreeLayoutScope* delayedLayo |
| m_inOverflowRelayout = true; |
| if (delayedLayoutScope) { |
| delayedLayoutScope->setNeedsLayout(&box(), LayoutInvalidationReason::ScrollbarChanged); |
| + // Since we can't pass true to layoutBlock to force relaying out the children, mark them explicitly. |
| + // They do have to be laid out again because their available width has now changed. |
| + for (LayoutObject* child = box().slowFirstChild(); child; child = child->nextSibling()) |
| + delayedLayoutScope->setNeedsLayout(child, LayoutInvalidationReason::ScrollbarChanged); |
| + TrackedLayoutBoxListHashSet* positionedDescendants = box().isLayoutBlock() ? toLayoutBlock(box()).positionedObjects() : 0; |
|
mstensho (USE GERRIT)
2016/03/17 21:23:36
0 -> nullptr
|
| + if (positionedDescendants) { |
| + for (auto* positionedObject : *positionedDescendants) { |
| + delayedLayoutScope->setNeedsLayout(positionedObject, LayoutInvalidationReason::ScrollbarChanged); |
| + } |
|
mstensho (USE GERRIT)
2016/03/17 21:23:36
Superfluous braces.
|
| + } |
| + |
| didMarkForDelayedLayout = true; |
| } else { |
| SubtreeLayoutScope layoutScope(box()); |