| OLD | NEW |
| 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, 2008, 2009, 2010, 2013 Apple Inc. | 7 * Copyright (C) 2003, 2004, 2005, 2006, 2008, 2009, 2010, 2013 Apple Inc. |
| 8 * All rights reserved. | 8 * All rights reserved. |
| 9 * Copyright (C) 2006 Alexey Proskuryakov (ap@nypop.com) | 9 * Copyright (C) 2006 Alexey Proskuryakov (ap@nypop.com) |
| 10 * | 10 * |
| (...skipping 1257 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1268 m_overflow.reset(); | 1268 m_overflow.reset(); |
| 1269 m_overflowingCells.clear(); | 1269 m_overflowingCells.clear(); |
| 1270 m_forceSlowPaintPathWithOverflowingCell = false; | 1270 m_forceSlowPaintPathWithOverflowingCell = false; |
| 1271 #if DCHECK_IS_ON() | 1271 #if DCHECK_IS_ON() |
| 1272 bool hasOverflowingCell = false; | 1272 bool hasOverflowingCell = false; |
| 1273 #endif | 1273 #endif |
| 1274 // Now that our height has been determined, add in overflow from cells. | 1274 // Now that our height has been determined, add in overflow from cells. |
| 1275 for (unsigned r = 0; r < totalRows; r++) { | 1275 for (unsigned r = 0; r < totalRows; r++) { |
| 1276 unsigned nCols = numCols(r); | 1276 unsigned nCols = numCols(r); |
| 1277 for (unsigned c = 0; c < nCols; c++) { | 1277 for (unsigned c = 0; c < nCols; c++) { |
| 1278 auto* cell = originatingCellAt(r, c); | 1278 const auto* cell = originatingCellAt(r, c); |
| 1279 if (!cell) | 1279 if (!cell) |
| 1280 continue; | 1280 continue; |
| 1281 addOverflowFromChild(cell); | 1281 addOverflowFromChild(*cell); |
| 1282 #if DCHECK_IS_ON() | 1282 #if DCHECK_IS_ON() |
| 1283 hasOverflowingCell |= cell->hasVisualOverflow(); | 1283 hasOverflowingCell |= cell->hasVisualOverflow(); |
| 1284 #endif | 1284 #endif |
| 1285 if (cell->hasVisualOverflow() && | 1285 if (cell->hasVisualOverflow() && |
| 1286 !m_forceSlowPaintPathWithOverflowingCell) { | 1286 !m_forceSlowPaintPathWithOverflowingCell) { |
| 1287 m_overflowingCells.insert(cell); | 1287 m_overflowingCells.insert(cell); |
| 1288 if (m_overflowingCells.size() > maxAllowedOverflowingCellsCount) { | 1288 if (m_overflowingCells.size() > maxAllowedOverflowingCellsCount) { |
| 1289 // We need to set m_forcesSlowPaintPath only if there is a least one | 1289 // We need to set m_forcesSlowPaintPath only if there is a least one |
| 1290 // overflowing cells as the hit testing code rely on this information. | 1290 // overflowing cells as the hit testing code rely on this information. |
| 1291 m_forceSlowPaintPathWithOverflowingCell = true; | 1291 m_forceSlowPaintPathWithOverflowingCell = true; |
| (...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1514 // section's (see bug 96691). | 1514 // section's (see bug 96691). |
| 1515 if (!style()->isLeftToRightDirection()) | 1515 if (!style()->isLeftToRightDirection()) |
| 1516 tableAlignedRect.setX(columnPos[columnPos.size() - 1] - | 1516 tableAlignedRect.setX(columnPos[columnPos.size() - 1] - |
| 1517 tableAlignedRect.maxX()); | 1517 tableAlignedRect.maxX()); |
| 1518 | 1518 |
| 1519 return tableAlignedRect; | 1519 return tableAlignedRect; |
| 1520 } | 1520 } |
| 1521 | 1521 |
| 1522 CellSpan LayoutTableSection::dirtiedRows(const LayoutRect& damageRect) const { | 1522 CellSpan LayoutTableSection::dirtiedRows(const LayoutRect& damageRect) const { |
| 1523 if (m_forceSlowPaintPathWithOverflowingCell) | 1523 if (m_forceSlowPaintPathWithOverflowingCell) |
| 1524 return fullTableRowSpan(); | 1524 return fullSectionRowSpan(); |
| 1525 | 1525 |
| 1526 if (!m_grid.size()) | 1526 if (!m_grid.size()) |
| 1527 return CellSpan(0, 0); | 1527 return CellSpan(0, 0); |
| 1528 | 1528 |
| 1529 CellSpan coveredRows = spannedRows(damageRect); | 1529 CellSpan coveredRows = spannedRows(damageRect); |
| 1530 | 1530 |
| 1531 // To issue paint invalidations for the border we might need to paint | 1531 // To issue paint invalidations for the border we might need to paint |
| 1532 // invalidate the first or last row even if they are not spanned themselves. | 1532 // invalidate the first or last row even if they are not spanned themselves. |
| 1533 CHECK_LT(coveredRows.start(), m_rowPos.size()); | 1533 CHECK_LT(coveredRows.start(), m_rowPos.size()); |
| 1534 if (coveredRows.start() == m_rowPos.size() - 1 && | 1534 if (coveredRows.start() == m_rowPos.size() - 1 && |
| (...skipping 587 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2122 if (table()->header() == this && isRepeatingHeaderGroup()) { | 2122 if (table()->header() == this && isRepeatingHeaderGroup()) { |
| 2123 transformState.flatten(); | 2123 transformState.flatten(); |
| 2124 FloatRect rect = transformState.lastPlanarQuad().boundingBox(); | 2124 FloatRect rect = transformState.lastPlanarQuad().boundingBox(); |
| 2125 rect.setHeight(table()->logicalHeight()); | 2125 rect.setHeight(table()->logicalHeight()); |
| 2126 transformState.setQuad(FloatQuad(rect)); | 2126 transformState.setQuad(FloatQuad(rect)); |
| 2127 } | 2127 } |
| 2128 return LayoutTableBoxComponent::mapToVisualRectInAncestorSpaceInternal( | 2128 return LayoutTableBoxComponent::mapToVisualRectInAncestorSpaceInternal( |
| 2129 ancestor, transformState, flags); | 2129 ancestor, transformState, flags); |
| 2130 } | 2130 } |
| 2131 | 2131 |
| 2132 bool LayoutTableSection::paintedOutputOfObjectHasNoEffectRegardlessOfSize() |
| 2133 const { |
| 2134 // LayoutTableSection paints background from columns. |
| 2135 if (table()->hasColElements()) |
| 2136 return false; |
| 2137 return LayoutTableBoxComponent:: |
| 2138 paintedOutputOfObjectHasNoEffectRegardlessOfSize(); |
| 2139 } |
| 2140 |
| 2132 } // namespace blink | 2141 } // namespace blink |
| OLD | NEW |