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

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

Issue 2861373003: Let table row and section's self visual overflow cover whole collapsed borders (Closed)
Patch Set: rebaseline-cl 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1997 Martin Jones (mjones@kde.org) 2 * Copyright (C) 1997 Martin Jones (mjones@kde.org)
3 * (C) 1997 Torben Weis (weis@kde.org) 3 * (C) 1997 Torben Weis (weis@kde.org)
4 * (C) 1998 Waldo Bastian (bastian@kde.org) 4 * (C) 1998 Waldo Bastian (bastian@kde.org)
5 * (C) 1999 Lars Knoll (knoll@kde.org) 5 * (C) 1999 Lars Knoll (knoll@kde.org)
6 * (C) 1999 Antti Koivisto (koivisto@kde.org) 6 * (C) 1999 Antti Koivisto (koivisto@kde.org)
7 * Copyright (C) 2003, 2004, 2005, 2006, 2009, 2013 Apple Inc. All rights 7 * Copyright (C) 2003, 2004, 2005, 2006, 2009, 2013 Apple Inc. All rights
8 * reserved. 8 * reserved.
9 * 9 *
10 * This library is free software; you can redistribute it and/or 10 * This library is free software; you can redistribute it and/or
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 void AddChild(LayoutObject* child, 114 void AddChild(LayoutObject* child,
115 LayoutObject* before_child = nullptr) override; 115 LayoutObject* before_child = nullptr) override;
116 116
117 int FirstLineBoxBaseline() const override; 117 int FirstLineBoxBaseline() const override;
118 118
119 void AddCell(LayoutTableCell*, LayoutTableRow*); 119 void AddCell(LayoutTableCell*, LayoutTableRow*);
120 120
121 int VBorderSpacingBeforeFirstRow() const; 121 int VBorderSpacingBeforeFirstRow() const;
122 int CalcRowLogicalHeight(); 122 int CalcRowLogicalHeight();
123 void LayoutRows(); 123 void LayoutRows();
124 void ComputeOverflowFromCells(); 124 void ComputeOverflowFromDescendants();
125 bool RecalcChildOverflowAfterStyleChange(); 125 bool RecalcChildOverflowAfterStyleChange();
126 126
127 void MarkAllCellsWidthsDirtyAndOrNeedsLayout(LayoutTable::WhatToMarkAllCells); 127 void MarkAllCellsWidthsDirtyAndOrNeedsLayout(LayoutTable::WhatToMarkAllCells);
128 128
129 LayoutTable* Table() const { return ToLayoutTable(Parent()); } 129 LayoutTable* Table() const { return ToLayoutTable(Parent()); }
130 130
131 typedef Vector<LayoutTableCell*, 2> SpanningLayoutTableCells; 131 typedef Vector<LayoutTableCell*, 2> SpanningLayoutTableCells;
132 132
133 // CellStruct represents the cells that occupy an (N, M) position in the 133 // CellStruct represents the cells that occupy an (N, M) position in the
134 // table grid. 134 // table grid.
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after
425 425
426 void UpdateBaselineForCell(LayoutTableCell*, 426 void UpdateBaselineForCell(LayoutTableCell*,
427 unsigned row, 427 unsigned row,
428 int& baseline_descent); 428 int& baseline_descent);
429 429
430 bool HasOverflowingCell() const { 430 bool HasOverflowingCell() const {
431 return overflowing_cells_.size() || 431 return overflowing_cells_.size() ||
432 force_slow_paint_path_with_overflowing_cell_; 432 force_slow_paint_path_with_overflowing_cell_;
433 } 433 }
434 434
435 void ComputeOverflowFromCells(unsigned total_rows, unsigned n_eff_cols);
436
437 // These two functions take a rectangle as input that has been flipped by 435 // These two functions take a rectangle as input that has been flipped by
438 // logicalRectForWritingModeAndDirection. 436 // logicalRectForWritingModeAndDirection.
439 // The returned span of rows or columns is end-exclusive, and empty if 437 // The returned span of rows or columns is end-exclusive, and empty if
440 // start==end. 438 // start==end.
441 CellSpan SpannedRows(const LayoutRect& flipped_rect) const; 439 CellSpan SpannedRows(const LayoutRect& flipped_rect) const;
442 CellSpan SpannedEffectiveColumns(const LayoutRect& flipped_rect) const; 440 CellSpan SpannedEffectiveColumns(const LayoutRect& flipped_rect) const;
443 441
444 void SetLogicalPositionForCell(LayoutTableCell*, 442 void SetLogicalPositionForCell(LayoutTableCell*,
445 unsigned effective_column) const; 443 unsigned effective_column) const;
446 444
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 501
504 // Whether any cell spans multiple rows or cols. 502 // Whether any cell spans multiple rows or cols.
505 bool has_spanning_cells_; 503 bool has_spanning_cells_;
506 }; 504 };
507 505
508 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutTableSection, IsTableSection()); 506 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutTableSection, IsTableSection());
509 507
510 } // namespace blink 508 } // namespace blink
511 509
512 #endif // LayoutTableSection_h 510 #endif // LayoutTableSection_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698