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

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

Issue 2551963003: Reland of 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 @@
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);
-}
-
-void TableSectionPainter::paintCollapsedSectionBorders(
+ }
+ return result;
+}
+
+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 @@
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 @@
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