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

Side by Side Diff: Source/core/rendering/RenderMultiColumnFlowThread.cpp

Issue 264773018: [New Multicolumn] Remove the term "balancing" from some member names. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Code review. Created 6 years, 7 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Apple Inc. All rights reserved. 2 * Copyright (C) 2012 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 17 matching lines...) Expand all
28 28
29 #include "core/rendering/RenderMultiColumnSet.h" 29 #include "core/rendering/RenderMultiColumnSet.h"
30 30
31 namespace WebCore { 31 namespace WebCore {
32 32
33 RenderMultiColumnFlowThread::RenderMultiColumnFlowThread() 33 RenderMultiColumnFlowThread::RenderMultiColumnFlowThread()
34 : m_columnCount(1) 34 : m_columnCount(1)
35 , m_columnWidth(0) 35 , m_columnWidth(0)
36 , m_columnHeightAvailable(0) 36 , m_columnHeightAvailable(0)
37 , m_inBalancingPass(false) 37 , m_inBalancingPass(false)
38 , m_needsRebalancing(false) 38 , m_needsColumnHeightsRecalculation(false)
39 { 39 {
40 setFlowThreadState(InsideInFlowThread); 40 setFlowThreadState(InsideInFlowThread);
41 } 41 }
42 42
43 RenderMultiColumnFlowThread::~RenderMultiColumnFlowThread() 43 RenderMultiColumnFlowThread::~RenderMultiColumnFlowThread()
44 { 44 {
45 } 45 }
46 46
47 RenderMultiColumnFlowThread* RenderMultiColumnFlowThread::createAnonymous(Docume nt& document, RenderStyle* parentStyle) 47 RenderMultiColumnFlowThread* RenderMultiColumnFlowThread::createAnonymous(Docume nt& document, RenderStyle* parentStyle)
48 { 48 {
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 159
160 if (requiresBalancing()) { 160 if (requiresBalancing()) {
161 // At the end of multicol layout, relayoutForPagination() is called unco nditionally, but if 161 // At the end of multicol layout, relayoutForPagination() is called unco nditionally, but if
162 // no children are to be laid out (e.g. fixed width with layout already being up-to-date), 162 // no children are to be laid out (e.g. fixed width with layout already being up-to-date),
163 // we want to prevent it from doing any work, so that the column balanci ng machinery doesn't 163 // we want to prevent it from doing any work, so that the column balanci ng machinery doesn't
164 // kick in and trigger additional unnecessary layout passes. Actually, i t's not just a good 164 // kick in and trigger additional unnecessary layout passes. Actually, i t's not just a good
165 // idea in general to not waste time on balancing content that hasn't be en re-laid out; we 165 // idea in general to not waste time on balancing content that hasn't be en re-laid out; we
166 // are actually required to guarantee this. The calculation of implicit breaks needs to be 166 // are actually required to guarantee this. The calculation of implicit breaks needs to be
167 // preceded by a proper layout pass, since it's layout that sets up cont ent runs, and the 167 // preceded by a proper layout pass, since it's layout that sets up cont ent runs, and the
168 // runs get deleted right after every pass. 168 // runs get deleted right after every pass.
169 m_needsRebalancing = shouldInvalidateRegions || needsLayout(); 169 m_needsColumnHeightsRecalculation = shouldInvalidateRegions || needsLayo ut();
170 } 170 }
171 171
172 layoutIfNeeded(); 172 layoutIfNeeded();
173 } 173 }
174 174
175 bool RenderMultiColumnFlowThread::computeColumnCountAndWidth() 175 bool RenderMultiColumnFlowThread::computeColumnCountAndWidth()
176 { 176 {
177 RenderBlock* columnBlock = multiColumnBlockFlow(); 177 RenderBlock* columnBlock = multiColumnBlockFlow();
178 LayoutUnit oldColumnWidth = m_columnWidth; 178 LayoutUnit oldColumnWidth = m_columnWidth;
179 179
(...skipping 18 matching lines...) Expand all
198 } else { 198 } else {
199 m_columnCount = std::max<LayoutUnit>(std::min<LayoutUnit>(colCount, (ava ilWidth + colGap) / (colWidth + colGap)), 1); 199 m_columnCount = std::max<LayoutUnit>(std::min<LayoutUnit>(colCount, (ava ilWidth + colGap) / (colWidth + colGap)), 1);
200 m_columnWidth = ((availWidth + colGap) / m_columnCount) - colGap; 200 m_columnWidth = ((availWidth + colGap) / m_columnCount) - colGap;
201 } 201 }
202 202
203 return m_columnWidth != oldColumnWidth; 203 return m_columnWidth != oldColumnWidth;
204 } 204 }
205 205
206 bool RenderMultiColumnFlowThread::recalculateColumnHeights() 206 bool RenderMultiColumnFlowThread::recalculateColumnHeights()
207 { 207 {
208 if (!m_needsRebalancing) 208 if (!m_needsColumnHeightsRecalculation)
209 return false; 209 return false;
210 210
211 // Column heights may change here because of balancing. We may have to do mu ltiple layout 211 // Column heights may change here because of balancing. We may have to do mu ltiple layout
212 // passes, depending on how the contents is fitted to the changed column hei ghts. In most 212 // passes, depending on how the contents is fitted to the changed column hei ghts. In most
213 // cases, laying out again twice or even just once will suffice. Sometimes w e need more 213 // cases, laying out again twice or even just once will suffice. Sometimes w e need more
214 // passes than that, though, but the number of retries should not exceed the number of 214 // passes than that, though, but the number of retries should not exceed the number of
215 // columns, unless we have a bug. 215 // columns, unless we have a bug.
216 bool needsRelayout = false; 216 bool needsRelayout = false;
217 for (RenderMultiColumnSet* multicolSet = firstMultiColumnSet(); multicolSet; multicolSet = multicolSet->nextSiblingMultiColumnSet()) { 217 for (RenderMultiColumnSet* multicolSet = firstMultiColumnSet(); multicolSet; multicolSet = multicolSet->nextSiblingMultiColumnSet()) {
218 if (multicolSet->recalculateBalancedHeight(!m_inBalancingPass)) { 218 if (multicolSet->recalculateColumnHeight(!m_inBalancingPass)) {
219 multicolSet->setChildNeedsLayout(MarkOnlyThis); 219 multicolSet->setChildNeedsLayout(MarkOnlyThis);
220 needsRelayout = true; 220 needsRelayout = true;
221 } 221 }
222 } 222 }
223 223
224 if (needsRelayout) 224 if (needsRelayout)
225 setChildNeedsLayout(MarkOnlyThis); 225 setChildNeedsLayout(MarkOnlyThis);
226 226
227 m_inBalancingPass = needsRelayout; 227 m_inBalancingPass = needsRelayout;
228 return needsRelayout; 228 return needsRelayout;
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 } 299 }
300 300
301 bool RenderMultiColumnFlowThread::isPageLogicalHeightKnown() const 301 bool RenderMultiColumnFlowThread::isPageLogicalHeightKnown() const
302 { 302 {
303 if (RenderMultiColumnSet* columnSet = lastMultiColumnSet()) 303 if (RenderMultiColumnSet* columnSet = lastMultiColumnSet())
304 return columnSet->computedColumnHeight(); 304 return columnSet->computedColumnHeight();
305 return false; 305 return false;
306 } 306 }
307 307
308 } 308 }
OLDNEW
« no previous file with comments | « Source/core/rendering/RenderMultiColumnFlowThread.h ('k') | Source/core/rendering/RenderMultiColumnSet.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698