Index: third_party/WebKit/Source/core/paint/PrePaintTreeWalk.cpp |
diff --git a/third_party/WebKit/Source/core/paint/PrePaintTreeWalk.cpp b/third_party/WebKit/Source/core/paint/PrePaintTreeWalk.cpp |
index 582e8cb0846d910ff4a08ea66cfdc6869475143f..117b0ecfea6a15dbc95ba4f184743333ab9ebab3 100644 |
--- a/third_party/WebKit/Source/core/paint/PrePaintTreeWalk.cpp |
+++ b/third_party/WebKit/Source/core/paint/PrePaintTreeWalk.cpp |
@@ -56,6 +56,17 @@ void PrePaintTreeWalk::walk(const LayoutObject& object, |
const PrePaintTreeWalkContext& context) { |
PrePaintTreeWalkContext localContext(context); |
+ if (object.isLayoutMultiColumnSpannerPlaceholder()) { |
+ // Multi-column spanner should be walked for normal flow descendants from |
+ // the placeholder. Set the flag so that the tree builder can specially |
+ // handle the out-of-flow positioned descendants. |
+ localContext.treeBuilderContext.isUnderMultiColumnSpanner = true; |
mstensho (USE GERRIT)
2016/10/05 08:44:09
<div style="columns:3;">
<div id="rel" style="po
Xianzhu
2016/10/05 17:29:40
Yes. Updated comments here and PaintPropertyTreeBu
|
+ walk(*toLayoutMultiColumnSpannerPlaceholder(object) |
+ .layoutObjectInFlowThread(), |
+ localContext); |
+ return; |
+ } |
+ |
m_propertyTreeBuilder.buildTreeNodesForSelf(object, |
localContext.treeBuilderContext); |
if (RuntimeEnabledFeatures::slimmingPaintInvalidationEnabled()) |
@@ -66,17 +77,12 @@ void PrePaintTreeWalk::walk(const LayoutObject& object, |
for (const LayoutObject* child = object.slowFirstChild(); child; |
child = child->nextSibling()) { |
- // Column spanners are walked through their placeholders. See below. |
+ // Column spanners are walked through their placeholders. See above. |
if (child->isColumnSpanAll()) |
continue; |
walk(*child, localContext); |
} |
- if (object.isLayoutMultiColumnSpannerPlaceholder()) |
- walk(*toLayoutMultiColumnSpannerPlaceholder(object) |
- .layoutObjectInFlowThread(), |
- localContext); |
- |
if (object.isLayoutPart()) { |
const LayoutPart& layoutPart = toLayoutPart(object); |
Widget* widget = layoutPart.widget(); |