| 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,
|
|
|