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

Unified Diff: third_party/WebKit/Source/core/layout/MultiColumnFragmentainerGroup.h

Issue 2874933005: Distinguish between row (fragmentainer group) height and column (fragmentainer) height. (Closed)
Patch Set: Created 3 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/layout/MultiColumnFragmentainerGroup.h
diff --git a/third_party/WebKit/Source/core/layout/MultiColumnFragmentainerGroup.h b/third_party/WebKit/Source/core/layout/MultiColumnFragmentainerGroup.h
index 30b072578619e41450c4f3ee5d27c8fb7f875b8a..31c7ad3ce92a2220d6857dcc46ff7830cfc2d213 100644
--- a/third_party/WebKit/Source/core/layout/MultiColumnFragmentainerGroup.h
+++ b/third_party/WebKit/Source/core/layout/MultiColumnFragmentainerGroup.h
@@ -44,7 +44,21 @@ class MultiColumnFragmentainerGroup {
LayoutUnit LogicalTop() const { return logical_top_; }
void SetLogicalTop(LayoutUnit logical_top) { logical_top_ = logical_top; }
- LayoutUnit LogicalHeight() const { return column_height_; }
+ // Return the amount of block space that this fragmentainer group takes up in
+ // its containing LayoutMultiColumnSet.
+ LayoutUnit GroupLogicalHeight() const { return logical_height_; }
+
+ // Return the block size of a column (or fragmentainer) in this fragmentainer
+ // group. The spec says that this value must always be >= 1px, to ensure
eae 2017/05/12 16:31:21 These comments are great! Thank you.
+ // progress.
+ LayoutUnit ColumnLogicalHeight() const {
+ // If the height hasn't been calculated yet, though, we allow returning 0
+ // (and the caller is then expected to refrain from attempting to fragment).
+ if (!logical_height_)
+ return logical_height_;
+
+ return std::max(LayoutUnit(1), logical_height_);
+ }
LayoutSize OffsetFromColumnSet() const;
@@ -156,7 +170,7 @@ class MultiColumnFragmentainerGroup {
LayoutRect ColumnRectAt(unsigned column_index) const;
LayoutUnit LogicalTopInFlowThreadAt(unsigned column_index) const {
- return logical_top_in_flow_thread_ + column_index * column_height_;
+ return logical_top_in_flow_thread_ + column_index * ColumnLogicalHeight();
}
// Return the column that the specified visual point belongs to. Only the
@@ -170,9 +184,13 @@ class MultiColumnFragmentainerGroup {
LayoutUnit logical_top_in_flow_thread_;
LayoutUnit logical_bottom_in_flow_thread_;
- LayoutUnit column_height_;
+ // Logical height of the group. This will also be the height of each column
+ // in this group, with the difference that, while the logical height can be
+ // 0, the height of a column must be >= 1px.
+ LayoutUnit logical_height_;
- LayoutUnit max_column_height_; // Maximum column height allowed.
+ // Maximum logical height allowed.
+ LayoutUnit max_logical_height_;
};
// List of all fragmentainer groups within a column set. There will always be at

Powered by Google App Engine
This is Rietveld 408576698