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

Side by Side Diff: third_party/WebKit/Source/core/layout/ColumnBalancer.h

Issue 1406973008: Calculate minimum column height after layout. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: code review Created 5 years, 1 month 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 | « no previous file | third_party/WebKit/Source/core/layout/ColumnBalancer.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "core/layout/MultiColumnFragmentainerGroup.h" 5 #include "core/layout/MultiColumnFragmentainerGroup.h"
6 6
7 namespace blink { 7 namespace blink {
8 8
9 // A column balancer traverses the portion of the subtree of a flow thread that belongs to a given 9 // A column balancer traverses the portion of the subtree of a flow thread that belongs to a given
10 // fragmentainer group, in order to collect certain data to be used for column b alancing. This is an 10 // fragmentainer group, in order to collect certain data to be used for column b alancing. This is an
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 // so on). There may be several objects that cross the same column boundary, and we're only 131 // so on). There may be several objects that cross the same column boundary, and we're only
132 // interested in the shortest one. For example, when having a float beside r egular in-flow 132 // interested in the shortest one. For example, when having a float beside r egular in-flow
133 // content, we end up with two parallel fragmentation flows [1]. The shortes t strut found at a 133 // content, we end up with two parallel fragmentation flows [1]. The shortes t strut found at a
134 // column boundary is the amount of space that we wasted at said column boun dary, and it needs 134 // column boundary is the amount of space that we wasted at said column boun dary, and it needs
135 // to be deducted when estimating the initial balanced column height, or we risk making the 135 // to be deducted when estimating the initial balanced column height, or we risk making the
136 // column row too tall. An entry set to LayoutUnit::max() means that we didn 't detect any object 136 // column row too tall. An entry set to LayoutUnit::max() means that we didn 't detect any object
137 // crossing that boundary. 137 // crossing that boundary.
138 // 138 //
139 // [1] http://www.w3.org/TR/css3-break/#parallel-flows 139 // [1] http://www.w3.org/TR/css3-break/#parallel-flows
140 Vector<LayoutUnit, 32> m_shortestStruts; 140 Vector<LayoutUnit, 32> m_shortestStruts;
141
142 LayoutUnit m_minimumColumnLogicalHeight;
141 }; 143 };
142 144
143 // If we have previously used InitialColumnHeightFinder to estimate an initial c olumn height, and 145 // If we have previously used InitialColumnHeightFinder to estimate an initial c olumn height, and
144 // that didn't result in tall enough columns, we need subsequent layout passes w here we increase 146 // that didn't result in tall enough columns, we need subsequent layout passes w here we increase
145 // the column height by the minimum space shortage at column breaks. This class finds the minimum 147 // the column height by the minimum space shortage at column breaks. This class finds the minimum
146 // space shortage after having laid out with the current column height. 148 // space shortage after having laid out with the current column height.
147 class MinimumSpaceShortageFinder final : public ColumnBalancer { 149 class MinimumSpaceShortageFinder final : public ColumnBalancer {
148 public: 150 public:
149 MinimumSpaceShortageFinder(const MultiColumnFragmentainerGroup&); 151 MinimumSpaceShortageFinder(const MultiColumnFragmentainerGroup&);
150 152
(...skipping 18 matching lines...) Expand all
169 LayoutUnit m_minimumSpaceShortage; 171 LayoutUnit m_minimumSpaceShortage;
170 172
171 // Set when breaking before a block, and we're looking for the first unbreak able descendant, in 173 // Set when breaking before a block, and we're looking for the first unbreak able descendant, in
172 // order to report correct space shortage for that one. 174 // order to report correct space shortage for that one.
173 LayoutUnit m_pendingStrut; 175 LayoutUnit m_pendingStrut;
174 176
175 unsigned m_forcedBreaksCount; 177 unsigned m_forcedBreaksCount;
176 }; 178 };
177 179
178 } // namespace blink 180 } // namespace blink
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/layout/ColumnBalancer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698