Index: Source/core/rendering/RenderBlockFlow.cpp |
diff --git a/Source/core/rendering/RenderBlockFlow.cpp b/Source/core/rendering/RenderBlockFlow.cpp |
index 8e86cd9c3a371df555fd7d5b3ae7a4a0cf41af42..a6b8fbcb3bbe191767360729adfadad59fc73a45 100644 |
--- a/Source/core/rendering/RenderBlockFlow.cpp |
+++ b/Source/core/rendering/RenderBlockFlow.cpp |
@@ -200,8 +200,8 @@ bool RenderBlockFlow::updateLogicalWidthAndColumnWidth() |
void RenderBlockFlow::checkForPaginationLogicalHeightChange(LayoutUnit& pageLogicalHeight, bool& pageLogicalHeightChanged, bool& hasSpecifiedPageLogicalHeight) |
{ |
if (RenderMultiColumnFlowThread* flowThread = multiColumnFlowThread()) { |
- // We don't actually update any of the variables. We just subclassed to adjust our column height. |
updateLogicalHeight(); |
+ pageLogicalHeightChanged = contentLogicalHeight() != flowThread->columnHeightAvailable(); |
flowThread->setColumnHeightAvailable(std::max<LayoutUnit>(contentLogicalHeight(), 0)); |
setLogicalHeight(0); |
} else if (hasColumns()) { |
@@ -351,6 +351,8 @@ inline bool RenderBlockFlow::layoutBlockFlow(bool relayoutChildren, LayoutUnit & |
bool pageLogicalHeightChanged = false; |
bool hasSpecifiedPageLogicalHeight = false; |
checkForPaginationLogicalHeightChange(pageLogicalHeight, pageLogicalHeightChanged, hasSpecifiedPageLogicalHeight); |
+ if (pageLogicalHeightChanged) |
+ relayoutChildren = true; |
LayoutStateMaintainer statePusher(*this, locationOffset(), pageLogicalHeight, pageLogicalHeightChanged, columnInfo()); |