Index: Source/core/rendering/RenderBlockFlow.cpp |
diff --git a/Source/core/rendering/RenderBlockFlow.cpp b/Source/core/rendering/RenderBlockFlow.cpp |
index 4f94ffa1c8c1d9ef7fa14ddc6ce582adfd5151c7..53b0b8ecd5357a798c95580acb165a050c544406 100644 |
--- a/Source/core/rendering/RenderBlockFlow.cpp |
+++ b/Source/core/rendering/RenderBlockFlow.cpp |
@@ -199,10 +199,11 @@ bool RenderBlockFlow::updateLogicalWidthAndColumnWidth() |
void RenderBlockFlow::checkForPaginationLogicalHeightChange(LayoutUnit& pageLogicalHeight, bool& pageLogicalHeightChanged, bool& hasSpecifiedPageLogicalHeight) |
{ |
if (RenderMultiColumnFlowThread* flowThread = multiColumnFlowThread()) { |
- updateLogicalHeight(); |
- pageLogicalHeightChanged = contentLogicalHeight() != flowThread->columnHeightAvailable(); |
- flowThread->setColumnHeightAvailable(std::max<LayoutUnit>(contentLogicalHeight(), 0)); |
- setLogicalHeight(0); |
+ LogicalExtentComputedValues computedValues; |
+ computeLogicalHeight(LayoutUnit(), logicalTop(), computedValues); |
+ LayoutUnit columnHeight = computedValues.m_extent - borderAndPaddingLogicalHeight() - scrollbarLogicalHeight(); |
+ pageLogicalHeightChanged = columnHeight != flowThread->columnHeightAvailable(); |
+ flowThread->setColumnHeightAvailable(std::max<LayoutUnit>(columnHeight, 0)); |
} else if (hasColumns()) { |
ColumnInfo* colInfo = columnInfo(); |