Index: third_party/WebKit/Source/core/layout/LayoutMultiColumnSet.cpp |
diff --git a/third_party/WebKit/Source/core/layout/LayoutMultiColumnSet.cpp b/third_party/WebKit/Source/core/layout/LayoutMultiColumnSet.cpp |
index bedf6229414e0fefe4e05796c48e08fcb5a3f7f8..8d5cfab0434f80564e64097f3c23ba7f2c13e51b 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutMultiColumnSet.cpp |
+++ b/third_party/WebKit/Source/core/layout/LayoutMultiColumnSet.cpp |
@@ -80,7 +80,7 @@ LayoutUnit LayoutMultiColumnSet::pageLogicalHeightForOffset(LayoutUnit offsetInF |
ASSERT(m_fragmentainerGroups.size() == 1); |
return LayoutUnit(); |
} |
- if (offsetInFlowThread >= lastRow.logicalTopInFlowThread() + lastRow.logicalHeight() * usedColumnCount()) { |
+ if (offsetInFlowThread >= lastRow.logicalTopInFlowThread() + fragmentainerGroupCapacity(lastRow)) { |
// The offset is outside the bounds of the fragmentainer groups that we have established at |
// this point. If we're nested inside another fragmentation context, we need to calculate |
// the height on our own. |
@@ -148,7 +148,7 @@ LayoutUnit LayoutMultiColumnSet::nextLogicalTopForUnbreakableContent(LayoutUnit |
// TODO(mstensho): if we're doubly nested (e.g. multicol in multicol in multicol), we need to |
// look beyond the first row here. |
const MultiColumnFragmentainerGroup& firstRow = firstFragmentainerGroup(); |
- LayoutUnit firstRowLogicalBottomInFlowThread = firstRow.logicalTopInFlowThread() + firstRow.logicalHeight() * usedColumnCount(); |
+ LayoutUnit firstRowLogicalBottomInFlowThread = firstRow.logicalTopInFlowThread() + fragmentainerGroupCapacity(firstRow); |
if (flowThreadOffset >= firstRowLogicalBottomInFlowThread) |
return flowThreadOffset; // We're not in the first row. Give up. |
LayoutUnit newLogicalHeight = enclosingFragmentationContext->fragmentainerLogicalHeightAt(firstRow.blockOffsetInEnclosingFragmentationContext() + firstRow.logicalHeight()); |
@@ -181,7 +181,7 @@ LayoutMultiColumnSet* LayoutMultiColumnSet::previousSiblingMultiColumnSet() cons |
bool LayoutMultiColumnSet::hasFragmentainerGroupForColumnAt(LayoutUnit offsetInFlowThread, PageBoundaryRule pageBoundaryRule) const |
{ |
const MultiColumnFragmentainerGroup& lastRow = lastFragmentainerGroup(); |
- LayoutUnit maxLogicalBottomInFlowThread = lastRow.logicalTopInFlowThread() + lastRow.logicalHeight() * usedColumnCount(); |
+ LayoutUnit maxLogicalBottomInFlowThread = lastRow.logicalTopInFlowThread() + fragmentainerGroupCapacity(lastRow); |
if (pageBoundaryRule == AssociateWithFormerPage) |
return offsetInFlowThread <= maxLogicalBottomInFlowThread; |
return offsetInFlowThread < maxLogicalBottomInFlowThread; |
@@ -194,7 +194,7 @@ MultiColumnFragmentainerGroup& LayoutMultiColumnSet::appendNewFragmentainerGroup |
MultiColumnFragmentainerGroup& previousGroup = m_fragmentainerGroups.last(); |
// This is the flow thread block offset where |previousGroup| ends and |newGroup| takes over. |
- LayoutUnit blockOffsetInFlowThread = previousGroup.logicalTopInFlowThread() + previousGroup.logicalHeight() * usedColumnCount(); |
+ LayoutUnit blockOffsetInFlowThread = previousGroup.logicalTopInFlowThread() + fragmentainerGroupCapacity(previousGroup); |
previousGroup.setLogicalBottomInFlowThread(blockOffsetInFlowThread); |
newGroup.setLogicalTopInFlowThread(blockOffsetInFlowThread); |
newGroup.setLogicalTop(previousGroup.logicalTop() + previousGroup.logicalHeight()); |