| Index: Source/core/layout/LayoutMultiColumnSet.cpp
|
| diff --git a/Source/core/layout/LayoutMultiColumnSet.cpp b/Source/core/layout/LayoutMultiColumnSet.cpp
|
| index e381257b43555ccde162d1cf4570ea6617d12ccd..fccdd52b5fb53aeb725f7e7dc31351588da808d3 100644
|
| --- a/Source/core/layout/LayoutMultiColumnSet.cpp
|
| +++ b/Source/core/layout/LayoutMultiColumnSet.cpp
|
| @@ -68,10 +68,29 @@ const MultiColumnFragmentainerGroup& LayoutMultiColumnSet::fragmentainerGroupAtV
|
| return m_fragmentainerGroups.first();
|
| }
|
|
|
| -LayoutUnit LayoutMultiColumnSet::pageLogicalHeight() const
|
| +LayoutUnit LayoutMultiColumnSet::pageLogicalHeightForOffset(LayoutUnit offsetInFlowThread) const
|
| +{
|
| + return fragmentainerGroupAtFlowThreadOffset(offsetInFlowThread).logicalHeight();
|
| +}
|
| +
|
| +LayoutUnit LayoutMultiColumnSet::pageRemainingLogicalHeightForOffset(LayoutUnit offsetInFlowThread, PageBoundaryRule pageBoundaryRule) const
|
| +{
|
| + const MultiColumnFragmentainerGroup& row = fragmentainerGroupAtFlowThreadOffset(offsetInFlowThread);
|
| + LayoutUnit pageLogicalHeight = row.logicalHeight();
|
| + ASSERT(pageLogicalHeight); // It's not allowed to call this method if the height is unknown.
|
| + LayoutUnit pageLogicalBottom = row.columnLogicalTopForOffset(offsetInFlowThread) + pageLogicalHeight;
|
| + LayoutUnit remainingLogicalHeight = pageLogicalBottom - offsetInFlowThread;
|
| +
|
| + if (pageBoundaryRule == IncludePageBoundary) {
|
| + // If IncludePageBoundary is set, the line exactly on the top edge of a
|
| + // column will act as being part of the previous column.
|
| + remainingLogicalHeight = intMod(remainingLogicalHeight, pageLogicalHeight);
|
| + }
|
| + return remainingLogicalHeight;
|
| +}
|
| +
|
| +bool LayoutMultiColumnSet::isPageLogicalHeightKnown() const
|
| {
|
| - // FIXME: pageLogicalHeight() needs to take a flow thread offset parameter, so that we can
|
| - // locate the right row.
|
| return firstFragmentainerGroup().logicalHeight();
|
| }
|
|
|
|
|