Index: third_party/WebKit/Source/core/layout/LayoutMultiColumnFlowThread.cpp |
diff --git a/third_party/WebKit/Source/core/layout/LayoutMultiColumnFlowThread.cpp b/third_party/WebKit/Source/core/layout/LayoutMultiColumnFlowThread.cpp |
index 321831fe34a0ff76db3c25b6e493c764d6bc5a77..33dd01e387390e3668420c2804ef0f024a29c059 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutMultiColumnFlowThread.cpp |
+++ b/third_party/WebKit/Source/core/layout/LayoutMultiColumnFlowThread.cpp |
@@ -364,6 +364,7 @@ void LayoutMultiColumnFlowThread::layoutColumns(bool relayoutChildren, SubtreeLa |
continue; |
} |
LayoutMultiColumnSet* columnSet = toLayoutMultiColumnSet(columnBox); |
+ layoutScope.setChildNeedsLayout(columnSet); |
if (!m_inBalancingPass) { |
// This is the initial layout pass. We need to reset the column height, because contents |
// typically have changed. |
@@ -391,16 +392,8 @@ bool LayoutMultiColumnFlowThread::recalculateColumnHeights() |
// passes than that, though, but the number of retries should not exceed the number of |
// columns, unless we have a bug. |
bool needsRelayout = false; |
- for (LayoutMultiColumnSet* multicolSet = firstMultiColumnSet(); multicolSet; multicolSet = multicolSet->nextSiblingMultiColumnSet()) { |
+ for (LayoutMultiColumnSet* multicolSet = firstMultiColumnSet(); multicolSet; multicolSet = multicolSet->nextSiblingMultiColumnSet()) |
needsRelayout |= multicolSet->recalculateColumnHeight(m_inBalancingPass ? StretchBySpaceShortage : GuessFromFlowThreadPortion); |
- if (needsRelayout) { |
- // Once a column set gets a new column height, that column set and all successive column |
- // sets need to be laid out over again, since their logical top will be affected by |
- // this, and therefore their column heights may change as well, at least if the multicol |
- // height is constrained. |
- multicolSet->setChildNeedsLayout(MarkOnlyThis); |
- } |
- } |
if (needsRelayout) |
setChildNeedsLayout(MarkOnlyThis); |
@@ -545,7 +538,6 @@ void LayoutMultiColumnFlowThread::createAndInsertSpannerPlaceholder(LayoutBox* s |
// a new spanner placeholder between them. |
setToSplit = mapDescendantToColumnSet(previousLayoutObject); |
ASSERT(setToSplit == mapDescendantToColumnSet(insertedBeforeInFlowThread)); |
- setToSplit->setNeedsLayoutAndFullPaintInvalidation(LayoutInvalidationReason::ColumnsChanged); |
insertBeforeColumnBox = setToSplit->nextSiblingMultiColumnBox(); |
// We've found out which set that needs to be split. Now proceed to |
// inserting the spanner placeholder, and then insert a second column set. |
@@ -572,7 +564,6 @@ void LayoutMultiColumnFlowThread::destroySpannerPlaceholder(LayoutMultiColumnSpa |
&& previousColumnBox && previousColumnBox->isLayoutMultiColumnSet()) { |
// Need to merge two column sets. |
nextColumnBox->destroy(); |
- previousColumnBox->setNeedsLayout(LayoutInvalidationReason::ColumnsChanged); |
invalidateColumnSets(); |
} |
} |