Chromium Code Reviews| Index: Source/core/rendering/RenderMultiColumnSpannerPlaceholder.cpp |
| diff --git a/Source/core/rendering/RenderMultiColumnSpannerPlaceholder.cpp b/Source/core/rendering/RenderMultiColumnSpannerPlaceholder.cpp |
| index b0555a5b2af6c9766a4a282382d2e39e16ee7c6e..f028dcf4b871ce38e4399eadaad1ad898b759ece 100644 |
| --- a/Source/core/rendering/RenderMultiColumnSpannerPlaceholder.cpp |
| +++ b/Source/core/rendering/RenderMultiColumnSpannerPlaceholder.cpp |
| @@ -7,12 +7,23 @@ |
| namespace blink { |
| +static void copyMarginProperties(RenderStyle* placeholderStyle, const RenderStyle* spannerStyle) |
| +{ |
| + // We really only need the block direction margins, but there are no setters for that in |
| + // RenderStyle. Just copy all margin sides. The inline ones don't matter anyway. |
| + placeholderStyle->setMarginLeft(spannerStyle->marginLeft()); |
| + placeholderStyle->setMarginRight(spannerStyle->marginRight()); |
| + placeholderStyle->setMarginTop(spannerStyle->marginTop()); |
| + placeholderStyle->setMarginBottom(spannerStyle->marginBottom()); |
| +} |
| + |
| RenderMultiColumnSpannerPlaceholder* RenderMultiColumnSpannerPlaceholder::createAnonymous(RenderStyle* parentStyle, RenderBox* rendererInFlowThread) |
| { |
| RenderMultiColumnSpannerPlaceholder* newSpanner = new RenderMultiColumnSpannerPlaceholder(rendererInFlowThread); |
| Document& document = rendererInFlowThread->document(); |
| newSpanner->setDocumentForAnonymous(&document); |
| RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyleWithDisplay(parentStyle, BLOCK); |
| + copyMarginProperties(newStyle.get(), rendererInFlowThread->style()); |
| newSpanner->setStyle(newStyle); |
| return newSpanner; |
| } |
| @@ -32,6 +43,13 @@ void RenderMultiColumnSpannerPlaceholder::spannerWillBeRemoved() |
| // |this| should be destroyed by now. |
| } |
| +void RenderMultiColumnSpannerPlaceholder::updateMarginProperties() |
| +{ |
| + RefPtr<RenderStyle> newStyle = RenderStyle::clone(style()); |
| + copyMarginProperties(newStyle.get(), m_rendererInFlowThread->style()); |
| + setStyle(newStyle); |
|
Julien - ping for review
2015/01/20 08:55:15
Won't this trigger another run through styleWillCh
mstensho (USE GERRIT)
2015/01/20 09:23:30
Yeah, but on this object, not on the RenderBox tha
Julien - ping for review
2015/01/20 16:52:45
Morten made me realize on IRC that we can't skip t
|
| +} |
| + |
| void RenderMultiColumnSpannerPlaceholder::willBeRemovedFromTree() |
| { |
| if (m_rendererInFlowThread) |
| @@ -62,6 +80,8 @@ void RenderMultiColumnSpannerPlaceholder::computeLogicalHeight(LayoutUnit, Layou |
| { |
| computedValues.m_extent = m_rendererInFlowThread->logicalHeight(); |
| computedValues.m_position = logicalTop; |
| + computedValues.m_margins.m_before = marginBefore(); |
| + computedValues.m_margins.m_after = marginAfter(); |
| } |
| void RenderMultiColumnSpannerPlaceholder::invalidateTreeIfNeeded(const PaintInvalidationState& paintInvalidationState) |