Chromium Code Reviews| Index: Source/core/rendering/RenderFlowThread.h |
| diff --git a/Source/core/rendering/RenderFlowThread.h b/Source/core/rendering/RenderFlowThread.h |
| index c3ba9cc13df97b0f668566a3a98f8e08be21c7df..bcc4057dbceadb25b4b13a442867b99cf468e87b 100644 |
| --- a/Source/core/rendering/RenderFlowThread.h |
| +++ b/Source/core/rendering/RenderFlowThread.h |
| @@ -64,6 +64,13 @@ public: |
| // can easily avoid drawing the children directly. |
| virtual LayerType layerTypeRequired() const override final { return NormalLayer; } |
| + // Skip past a column spanner during flow thread layout. Spanners are not laid out inside the |
| + // flow thread, since the flow thread is not in a spanner's containing block chain (since the |
| + // containing block is the multicol container). If the spanner follows right after a column set |
| + // (as opposed to following another spanner), we may have to stretch the flow thread to ensure |
| + // completely filled columns in the preceding column set. Return this adjustment, if any. |
| + virtual LayoutUnit skipColumnSpanner(RenderBox*, LayoutUnit logicalTopInFlowThread) { return LayoutUnit(); } |
| + |
| virtual void flowThreadDescendantWasInserted(RenderObject*) { } |
| virtual void flowThreadDescendantWillBeRemoved(RenderObject*) { } |
| @@ -114,13 +121,13 @@ public: |
| // Used to estimate the maximum height of the flow thread. |
| static LayoutUnit maxLogicalHeight() { return LayoutUnit::max() / 2; } |
| + virtual RenderMultiColumnSet* columnSetAtBlockOffset(LayoutUnit) const = 0; |
| + |
| protected: |
| virtual const char* renderName() const = 0; |
| void updateRegionsFlowThreadPortionRect(); |
| - virtual RenderMultiColumnSet* columnSetAtBlockOffset(LayoutUnit) const = 0; |
| - |
| bool cachedOffsetFromLogicalTopOfFirstRegion(const RenderBox*, LayoutUnit&) const; |
| void setOffsetFromLogicalTopOfFirstRegion(const RenderBox*, LayoutUnit); |
| void clearOffsetFromLogicalTopOfFirstRegion(const RenderBox*); |
| @@ -132,9 +139,9 @@ protected: |
| typedef PODInterval<LayoutUnit, RenderMultiColumnSet*> MultiColumnSetInterval; |
| typedef PODIntervalTree<LayoutUnit, RenderMultiColumnSet*> MultiColumnSetIntervalTree; |
| - class RegionSearchAdapter { |
| + class MultiColumnSetSearchAdapter { |
| public: |
| - RegionSearchAdapter(LayoutUnit offset) |
| + MultiColumnSetSearchAdapter(LayoutUnit offset) |
| : m_offset(offset) |
| , m_result(0) |
| { |
| @@ -144,11 +151,11 @@ protected: |
| const LayoutUnit& highValue() const { return m_offset; } |
| void collectIfNeeded(const MultiColumnSetInterval&); |
| - RenderRegion* result() const { return m_result; } |
| + RenderMultiColumnSet* result() const { return m_result; } |
| private: |
| LayoutUnit m_offset; |
| - RenderRegion* m_result; |
| + RenderMultiColumnSet* m_result; |
| }; |
|
Julien - ping for review
2015/01/19 10:05:11
FYI I keep reading this patch which looks like a g
|
| // Stack of objects that pushed a LayoutState object on the RenderView. The |