| Index: Source/core/layout/LayoutMultiColumnFlowThread.h
|
| diff --git a/Source/core/layout/LayoutMultiColumnFlowThread.h b/Source/core/layout/LayoutMultiColumnFlowThread.h
|
| index ca36f2ab1b26a8c3c53af5845e570db2da614c75..a67c9c91e96ef4b67020f3cdb32544057bd906b3 100644
|
| --- a/Source/core/layout/LayoutMultiColumnFlowThread.h
|
| +++ b/Source/core/layout/LayoutMultiColumnFlowThread.h
|
| @@ -168,12 +168,18 @@ public:
|
| // Do we need to set a new width and lay out?
|
| virtual bool needsNewWidth() const;
|
|
|
| + bool isPageLogicalHeightKnown() const final;
|
| +
|
| + LayoutSize flowThreadTranslationAtOffset(LayoutUnit) const;
|
| +
|
| LayoutPoint visualPointToFlowThreadPoint(const LayoutPoint& visualPoint) const override;
|
|
|
| LayoutMultiColumnSet* columnSetAtBlockOffset(LayoutUnit) const final;
|
|
|
| void layoutColumns(bool relayoutChildren, SubtreeLayoutScope&);
|
|
|
| + bool isInInitialLayoutPass() const { return !m_inBalancingPass; }
|
| +
|
| bool recalculateColumnHeights();
|
|
|
| void columnRuleStyleDidChange();
|
| @@ -181,6 +187,17 @@ public:
|
| // Remove the spanner placeholder and return true if the specified object is no longer a valid spanner.
|
| bool removeSpannerPlaceholderIfNoLongerValid(LayoutBox* spannerObjectInFlowThread);
|
|
|
| + LayoutMultiColumnFlowThread* enclosingFlowThread() const;
|
| + LayoutUnit blockOffsetInEnclosingFlowThread() const { ASSERT(enclosingFlowThread()); return m_blockOffsetInEnclosingFlowThread; }
|
| +
|
| + // Return true if we have a fragmentainer group that can hold a column at the specified flow thread block offset.
|
| + bool hasFragmentainerGroupForColumnAt(LayoutUnit offsetInFlowThread) const;
|
| +
|
| + // If we've run out of columns in the last fragmentainer group (column row), we have to insert
|
| + // another fragmentainer group in order to hold more columns. This means that we're moving to
|
| + // the next outer column (in the enclosing fragmentation context).
|
| + void appendNewFragmentainerGroupIfNeeded(LayoutUnit offsetInFlowThread);
|
| +
|
| const char* name() const override { return "LayoutMultiColumnFlowThread"; }
|
|
|
| protected:
|
| @@ -209,7 +226,6 @@ private:
|
| void setPageBreak(LayoutUnit offset, LayoutUnit spaceShortage) override;
|
| void updateMinimumPageHeight(LayoutUnit offset, LayoutUnit minHeight) override;
|
| bool addForcedColumnBreak(LayoutUnit, LayoutObject* breakChild, bool isBefore, LayoutUnit* offsetBreakAdjustment = nullptr) override;
|
| - bool isPageLogicalHeightKnown() const override;
|
|
|
| // The last set we worked on. It's not to be used as the "current set". The concept of a
|
| // "current set" is difficult, since layout may jump back and forth in the tree, due to wrong
|
| @@ -218,6 +234,11 @@ private:
|
|
|
| unsigned m_columnCount; // The used value of column-count
|
| LayoutUnit m_columnHeightAvailable; // Total height available to columns, or 0 if auto.
|
| +
|
| + // Cached block offset from this flow thread to the enclosing flow thread, if any. In the
|
| + // coordinate space of the enclosing flow thread.
|
| + LayoutUnit m_blockOffsetInEnclosingFlowThread;
|
| +
|
| bool m_inBalancingPass; // Set when relayouting for column balancing.
|
| bool m_needsColumnHeightsRecalculation; // Set when we need to recalculate the column set heights after layout.
|
| bool m_progressionIsInline; // Always true for regular multicol. False for paged-y overflow.
|
|
|