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

Side by Side 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 unified diff | Download patch
« no previous file with comments | « Source/core/rendering/RenderMultiColumnSpannerSet.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "config.h" 5 #include "config.h"
6 #include "core/rendering/RenderMultiColumnSpannerSet.h" 6 #include "core/rendering/RenderMultiColumnSpannerSet.h"
7 7
8 namespace blink { 8 namespace blink {
9 9
10 // RenderMultiColumnSpannerSet follows: 10 // RenderMultiColumnSpannerSet follows:
11 11
12 RenderMultiColumnSpannerSet* RenderMultiColumnSpannerSet::createAnonymous(Render MultiColumnFlowThread* flowThread, RenderStyle* parentStyle, RenderBox* renderer ) 12 RenderMultiColumnSpannerSet* RenderMultiColumnSpannerSet::createAnonymous(Render MultiColumnFlowThread* flowThread, RenderStyle* parentStyle, RenderBox* renderer )
13 { 13 {
14 RenderMultiColumnSpannerSet* newSpanner = new RenderMultiColumnSpannerSet(fl owThread, renderer); 14 RenderMultiColumnSpannerSet* newSpanner = new RenderMultiColumnSpannerSet(fl owThread, renderer);
15 Document& document = flowThread->document(); 15 Document& document = flowThread->document();
16 newSpanner->setDocumentForAnonymous(&document); 16 newSpanner->setDocumentForAnonymous(&document);
17 newSpanner->setStyle(RenderStyle::createAnonymousStyleWithDisplay(parentStyl e, BLOCK)); 17 RefPtr<RenderStyle> newStyle = RenderStyle::createAnonymousStyleWithDisplay( parentStyle, BLOCK);
18 newSpanner->updateMarginProperties(newStyle.get(), renderer);
19 newSpanner->setStyle(newStyle);
18 return newSpanner; 20 return newSpanner;
19 } 21 }
20 22
21 RenderMultiColumnSpannerSet::RenderMultiColumnSpannerSet(RenderMultiColumnFlowTh read* flowThread, RenderBox* renderer) 23 RenderMultiColumnSpannerSet::RenderMultiColumnSpannerSet(RenderMultiColumnFlowTh read* flowThread, RenderBox* renderer)
22 : RenderMultiColumnSet(flowThread) 24 : RenderMultiColumnSet(flowThread)
23 , m_renderer(renderer) 25 , m_renderer(renderer)
24 { 26 {
25 } 27 }
26 28
29 void RenderMultiColumnSpannerSet::updateMarginProperties(RenderStyle* newStyle, const RenderObject* spannerBlock) const
30 {
31 RefPtr<RenderStyle> spannerBlockStyle = spannerBlock->style();
32 newStyle->setMarginTop(spannerBlockStyle->marginTop());
33 newStyle->setMarginBottom(spannerBlockStyle->marginBottom());
34 newStyle->setMarginLeft(spannerBlockStyle->marginLeft());
35 newStyle->setMarginRight(spannerBlockStyle->marginRight());
36 }
37
27 bool RenderMultiColumnSpannerSet::recalculateColumnHeight(BalancedHeightCalculat ion calculationMode) 38 bool RenderMultiColumnSpannerSet::recalculateColumnHeight(BalancedHeightCalculat ion calculationMode)
28 { 39 {
29 m_columnHeight = m_renderer->logicalHeight() + m_renderer->marginLogicalHeig ht(); 40 m_columnHeight = m_renderer->logicalHeight();
30 return false; 41 return false;
31 } 42 }
32 43
33 void RenderMultiColumnSpannerSet::computeLogicalHeight(LayoutUnit, LayoutUnit lo gicalTop, LogicalExtentComputedValues& computedValues) const 44 void RenderMultiColumnSpannerSet::computeLogicalHeight(LayoutUnit, LayoutUnit lo gicalTop, LogicalExtentComputedValues& computedValues) const
34 { 45 {
35 computedValues.m_extent = m_renderer->logicalHeight() + m_renderer->marginLo gicalHeight(); 46 computedValues.m_extent = m_renderer->logicalHeight();
36 computedValues.m_position = logicalTop; 47 computedValues.m_position = logicalTop + m_renderer->marginTop();
48 computedValues.m_margins.m_before = marginBefore();
49 computedValues.m_margins.m_after = marginAfter();
37 } 50 }
38 51
39 LayoutUnit RenderMultiColumnSpannerSet::pageLogicalHeight() const 52 LayoutUnit RenderMultiColumnSpannerSet::pageLogicalHeight() const
40 { 53 {
41 return m_renderer->logicalHeight() + m_renderer->marginLogicalHeight(); 54 return m_renderer->logicalHeight();
42 } 55 }
43 56
44 const char* RenderMultiColumnSpannerSet::renderName() const 57 const char* RenderMultiColumnSpannerSet::renderName() const
45 { 58 {
46 return "RenderMultiColumnSpannerSet"; 59 return "RenderMultiColumnSpannerSet";
47 } 60 }
48 61
49 } 62 }
OLDNEW
« 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