Index: Source/core/rendering/RenderFlowThread.h |
diff --git a/Source/core/rendering/RenderFlowThread.h b/Source/core/rendering/RenderFlowThread.h |
index 3f72ab9de6458a2cc02dab7e684799711f3cbbdc..29e9759b4452282a6c99bc21e0cd34f95d47321f 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*) { } |
@@ -110,21 +117,21 @@ 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; |
- |
RenderMultiColumnSetList m_multiColumnSetList; |
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) |
{ |
@@ -134,11 +141,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; |
}; |
MultiColumnSetIntervalTree m_multiColumnSetIntervalTree; |