Index: Source/core/rendering/RenderBlockFlow.cpp |
diff --git a/Source/core/rendering/RenderBlockFlow.cpp b/Source/core/rendering/RenderBlockFlow.cpp |
index ace7c2d43f56633d9b8cdfd3900a51c68c072d3d..580c9b24546acd287f74bac660d43a247f1084a8 100644 |
--- a/Source/core/rendering/RenderBlockFlow.cpp |
+++ b/Source/core/rendering/RenderBlockFlow.cpp |
@@ -42,6 +42,7 @@ |
#include "core/rendering/RenderFlowThread.h" |
#include "core/rendering/RenderLayer.h" |
#include "core/rendering/RenderMultiColumnFlowThread.h" |
+#include "core/rendering/RenderMultiColumnSpannerPlaceholder.h" |
#include "core/rendering/RenderPagedFlowThread.h" |
#include "core/rendering/RenderText.h" |
#include "core/rendering/RenderView.h" |
@@ -1057,6 +1058,11 @@ void RenderBlockFlow::layoutBlockChildren(bool relayoutChildren, SubtreeLayoutSc |
adjustFloatingBlock(marginInfo); |
continue; |
} |
+ if (child->isColumnSpanAll()) { |
+ // This is not the containing block of the spanner. The spanner's placeholder will lay |
+ // it out in due course. |
+ continue; |
+ } |
// Lay out the child. |
layoutBlockChild(*child, marginInfo, previousFloatLogicalBottom); |
@@ -1971,6 +1977,16 @@ void RenderBlockFlow::styleDidChange(StyleDifference diff, const RenderStyle* ol |
createOrDestroyMultiColumnFlowThreadIfNeeded(oldStyle); |
} |
+void RenderBlockFlow::updateBlockChildDirtyBitsBeforeLayout(bool relayoutChildren, RenderBox& child) |
+{ |
+ if (child.isRenderMultiColumnSpannerPlaceholder() && toRenderMultiColumnSpannerPlaceholder(child).rendererInFlowThread()->needsLayout()) { |
+ // The containing block of a spanner is the multicol container (|this| block), but the spanner |
+ // is laid out via its spanner set (|child|), so we need to make sure that we enter it. |
+ child.setChildNeedsLayout(MarkOnlyThis); |
+ } |
+ RenderBlock::updateBlockChildDirtyBitsBeforeLayout(relayoutChildren, child); |
+} |
+ |
void RenderBlockFlow::updateStaticInlinePositionForChild(RenderBox& child, LayoutUnit logicalTop) |
{ |
if (child.style()->isOriginalDisplayInlineType()) |