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

Unified Diff: third_party/WebKit/Source/core/paint/TableSectionPainter.cpp

Issue 2502353003: Paint collapsed borders of a table as one display item (Closed)
Patch Set: - Created 4 years 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/paint/TableSectionPainter.cpp
diff --git a/third_party/WebKit/Source/core/paint/TableSectionPainter.cpp b/third_party/WebKit/Source/core/paint/TableSectionPainter.cpp
index 685ba6820b028f44b0749859f205ad8d21683fa8..44e1d61fcf123f9b8e46ca5e298ab938365705ac 100644
--- a/third_party/WebKit/Source/core/paint/TableSectionPainter.cpp
+++ b/third_party/WebKit/Source/core/paint/TableSectionPainter.cpp
@@ -149,24 +149,27 @@ static inline bool compareCellPositionsWithOverflowingCells(
return elem1->absoluteColumnIndex() < elem2->absoluteColumnIndex();
}
-void TableSectionPainter::paintCollapsedBorders(
+PaintResult TableSectionPainter::paintCollapsedBorders(
const PaintInfo& paintInfo,
const LayoutPoint& paintOffset,
const CollapsedBorderValue& currentBorderValue) {
- paintCollapsedSectionBorders(paintInfo, paintOffset, currentBorderValue);
+ PaintResult result =
+ paintCollapsedSectionBorders(paintInfo, paintOffset, currentBorderValue);
LayoutTable* table = m_layoutTableSection.table();
- if (table->header() == m_layoutTableSection)
+ if (table->header() == m_layoutTableSection) {
paintRepeatingHeaderGroup(paintInfo, paintOffset, currentBorderValue,
PaintCollapsedBorders);
+ }
+ return result;
}
-void TableSectionPainter::paintCollapsedSectionBorders(
+PaintResult TableSectionPainter::paintCollapsedSectionBorders(
const PaintInfo& paintInfo,
const LayoutPoint& paintOffset,
const CollapsedBorderValue& currentBorderValue) {
if (!m_layoutTableSection.numRows() ||
!m_layoutTableSection.table()->effectiveColumns().size())
- return;
+ return FullyPainted;
LayoutPoint adjustedPaintOffset =
paintOffset + m_layoutTableSection.location();
@@ -185,7 +188,7 @@ void TableSectionPainter::paintCollapsedSectionBorders(
m_layoutTableSection.dirtiedEffectiveColumns(tableAlignedRect);
if (dirtiedColumns.start() >= dirtiedColumns.end())
- return;
+ return MayBeClippedByPaintDirtyRect;
// Collapsed borders are painted from the bottom right to the top left so that
// precedence due to cell position is respected.
@@ -207,6 +210,11 @@ void TableSectionPainter::paintCollapsedSectionBorders(
currentBorderValue);
}
}
+
+ if (dirtiedRows == m_layoutTableSection.fullTableRowSpan() &&
+ dirtiedColumns == m_layoutTableSection.fullTableEffectiveColumnSpan())
+ return FullyPainted;
+ return MayBeClippedByPaintDirtyRect;
}
void TableSectionPainter::paintObject(const PaintInfo& paintInfo,

Powered by Google App Engine
This is Rietveld 408576698