Index: third_party/WebKit/Source/core/layout/LayoutMultiColumnSpannerPlaceholder.cpp |
diff --git a/third_party/WebKit/Source/core/layout/LayoutMultiColumnSpannerPlaceholder.cpp b/third_party/WebKit/Source/core/layout/LayoutMultiColumnSpannerPlaceholder.cpp |
index 327edd80770340e12563eca0d08e7c4df05f14f2..1da77af0f00867c031568e7cc55e5be0f9c685f8 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutMultiColumnSpannerPlaceholder.cpp |
+++ b/third_party/WebKit/Source/core/layout/LayoutMultiColumnSpannerPlaceholder.cpp |
@@ -91,6 +91,11 @@ void LayoutMultiColumnSpannerPlaceholder::layout() |
{ |
ASSERT(needsLayout()); |
+ // The placeholder, like any other block level object, has its logical top calculated and set |
+ // before layout. Copy this to the actual column-span:all object before laying it out, so that |
+ // it gets paginated correctly, in case we have an enclosing fragmentation context. |
+ m_layoutObjectInFlowThread->setLogicalTop(logicalTop()); |
+ |
// Lay out the actual column-span:all element. |
m_layoutObjectInFlowThread->layoutIfNeeded(); |