Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(245)

Unified Diff: Source/core/rendering/RenderMultiColumnSpannerSet.cpp

Issue 551263005: *** DO NOT LAND *** Implement column-span:all without reparenting renderers. Work in progress. (Closed) Base URL: git:blink.git@new-multicol-no-renderer-reparenting
Patch Set: Copy margin properties from a spanner to its spanner set, to simplify code. Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/rendering/RenderMultiColumnSpannerSet.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/rendering/RenderMultiColumnSpannerSet.cpp
diff --git a/Source/core/rendering/RenderMultiColumnSpannerSet.cpp b/Source/core/rendering/RenderMultiColumnSpannerSet.cpp
index ecd3760e570f979b2f9ad786125b415a6be42089..ddb84ca7bf14db5e634003b2a58ec847220a961e 100644
--- a/Source/core/rendering/RenderMultiColumnSpannerSet.cpp
+++ b/Source/core/rendering/RenderMultiColumnSpannerSet.cpp
@@ -14,7 +14,9 @@ RenderMultiColumnSpannerSet* RenderMultiColumnSpannerSet::createAnonymous(Render
RenderMultiColumnSpannerSet* newSpanner = new RenderMultiColumnSpannerSet(flowThread, renderer);
Document& document = flowThread->document();
newSpanner->setDocumentForAnonymous(&document);
- newSpanner->setStyle(RenderStyle::createAnonymousStyleWithDisplay(parentStyle, BLOCK));
+ RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyleWithDisplay(parentStyle, BLOCK);
+ newSpanner->updateMarginProperties(newStyle.get(), renderer);
+ newSpanner->setStyle(newStyle);
return newSpanner;
}
@@ -24,21 +26,32 @@ RenderMultiColumnSpannerSet::RenderMultiColumnSpannerSet(RenderMultiColumnFlowTh
{
}
+void RenderMultiColumnSpannerSet::updateMarginProperties(RenderStyle* newStyle, const RenderObject* spannerBlock) const
+{
+ RefPtr<RenderStyle> spannerBlockStyle = spannerBlock->style();
+ newStyle->setMarginTop(spannerBlockStyle->marginTop());
+ newStyle->setMarginBottom(spannerBlockStyle->marginBottom());
+ newStyle->setMarginLeft(spannerBlockStyle->marginLeft());
+ newStyle->setMarginRight(spannerBlockStyle->marginRight());
+}
+
bool RenderMultiColumnSpannerSet::recalculateColumnHeight(BalancedHeightCalculation calculationMode)
{
- m_columnHeight = m_renderer->logicalHeight() + m_renderer->marginLogicalHeight();
+ m_columnHeight = m_renderer->logicalHeight();
return false;
}
void RenderMultiColumnSpannerSet::computeLogicalHeight(LayoutUnit, LayoutUnit logicalTop, LogicalExtentComputedValues& computedValues) const
{
- computedValues.m_extent = m_renderer->logicalHeight() + m_renderer->marginLogicalHeight();
- computedValues.m_position = logicalTop;
+ computedValues.m_extent = m_renderer->logicalHeight();
+ computedValues.m_position = logicalTop + m_renderer->marginTop();
+ computedValues.m_margins.m_before = marginBefore();
+ computedValues.m_margins.m_after = marginAfter();
}
LayoutUnit RenderMultiColumnSpannerSet::pageLogicalHeight() const
{
- return m_renderer->logicalHeight() + m_renderer->marginLogicalHeight();
+ return m_renderer->logicalHeight();
}
const char* RenderMultiColumnSpannerSet::renderName() const
« no previous file with comments | « Source/core/rendering/RenderMultiColumnSpannerSet.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698