| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "config.h" | 5 #include "config.h" |
| 6 #include "core/paint/TableCellPainter.h" | 6 #include "core/paint/TableCellPainter.h" |
| 7 | 7 |
| 8 #include "core/paint/BlockPainter.h" | 8 #include "core/paint/BlockPainter.h" |
| 9 #include "core/paint/BoxPainter.h" | 9 #include "core/paint/BoxPainter.h" |
| 10 #include "core/paint/RenderDrawingRecorder.h" | 10 #include "core/paint/RenderDrawingRecorder.h" |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 124 LayoutRect paintRect = paintBounds(paintOffset, AddOffsetFromParent); | 124 LayoutRect paintRect = paintBounds(paintOffset, AddOffsetFromParent); |
| 125 if (paintRect.y() - m_renderTableCell.table()->outerBorderTop() >= paintInfo
.rect.maxY()) | 125 if (paintRect.y() - m_renderTableCell.table()->outerBorderTop() >= paintInfo
.rect.maxY()) |
| 126 return; | 126 return; |
| 127 | 127 |
| 128 if (paintRect.maxY() + m_renderTableCell.table()->outerBorderBottom() <= pai
ntInfo.rect.y()) | 128 if (paintRect.maxY() + m_renderTableCell.table()->outerBorderBottom() <= pai
ntInfo.rect.y()) |
| 129 return; | 129 return; |
| 130 | 130 |
| 131 if (!m_renderTableCell.table()->currentBorderValue()) | 131 if (!m_renderTableCell.table()->currentBorderValue()) |
| 132 return; | 132 return; |
| 133 | 133 |
| 134 RenderDrawingRecorder recorder(paintInfo.context, &m_renderTableCell, paintI
nfo.phase, paintRect); | 134 RenderDrawingRecorder recorder(paintInfo.context, m_renderTableCell, paintIn
fo.phase, paintRect); |
| 135 if (recorder.canUseCachedDrawing()) |
| 136 return; |
| 135 | 137 |
| 136 const RenderStyle* styleForCellFlow = m_renderTableCell.styleForCellFlow(); | 138 const RenderStyle* styleForCellFlow = m_renderTableCell.styleForCellFlow(); |
| 137 CollapsedBorderValue leftVal = cachedCollapsedLeftBorder(styleForCellFlow); | 139 CollapsedBorderValue leftVal = cachedCollapsedLeftBorder(styleForCellFlow); |
| 138 CollapsedBorderValue rightVal = cachedCollapsedRightBorder(styleForCellFlow)
; | 140 CollapsedBorderValue rightVal = cachedCollapsedRightBorder(styleForCellFlow)
; |
| 139 CollapsedBorderValue topVal = cachedCollapsedTopBorder(styleForCellFlow); | 141 CollapsedBorderValue topVal = cachedCollapsedTopBorder(styleForCellFlow); |
| 140 CollapsedBorderValue bottomVal = cachedCollapsedBottomBorder(styleForCellFlo
w); | 142 CollapsedBorderValue bottomVal = cachedCollapsedBottomBorder(styleForCellFlo
w); |
| 141 | 143 |
| 142 // Adjust our x/y/width/height so that we paint the collapsed borders at the
correct location. | 144 // Adjust our x/y/width/height so that we paint the collapsed borders at the
correct location. |
| 143 int topWidth = topVal.width(); | 145 int topWidth = topVal.width(); |
| 144 int bottomWidth = bottomVal.width(); | 146 int bottomWidth = bottomVal.width(); |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 216 void TableCellPainter::paintBoxDecorationBackground(const PaintInfo& paintInfo,
const LayoutPoint& paintOffset) | 218 void TableCellPainter::paintBoxDecorationBackground(const PaintInfo& paintInfo,
const LayoutPoint& paintOffset) |
| 217 { | 219 { |
| 218 if (!paintInfo.shouldPaintWithinRoot(&m_renderTableCell)) | 220 if (!paintInfo.shouldPaintWithinRoot(&m_renderTableCell)) |
| 219 return; | 221 return; |
| 220 | 222 |
| 221 RenderTable* tableElt = m_renderTableCell.table(); | 223 RenderTable* tableElt = m_renderTableCell.table(); |
| 222 if (!tableElt->collapseBorders() && m_renderTableCell.style()->emptyCells()
== HIDE && !m_renderTableCell.firstChild()) | 224 if (!tableElt->collapseBorders() && m_renderTableCell.style()->emptyCells()
== HIDE && !m_renderTableCell.firstChild()) |
| 223 return; | 225 return; |
| 224 | 226 |
| 225 LayoutRect paintRect = paintBounds(paintOffset, DoNotAddOffsetFromParent); | 227 LayoutRect paintRect = paintBounds(paintOffset, DoNotAddOffsetFromParent); |
| 226 RenderDrawingRecorder recorder(paintInfo.context, &m_renderTableCell, paintI
nfo.phase, pixelSnappedIntRect(paintRect)); | 228 RenderDrawingRecorder recorder(paintInfo.context, m_renderTableCell, paintIn
fo.phase, pixelSnappedIntRect(paintRect)); |
| 229 if (recorder.canUseCachedDrawing()) |
| 230 return; |
| 231 |
| 227 BoxPainter::paintBoxShadow(paintInfo, paintRect, m_renderTableCell.style(),
Normal); | 232 BoxPainter::paintBoxShadow(paintInfo, paintRect, m_renderTableCell.style(),
Normal); |
| 228 | 233 |
| 229 // Paint our cell background. | 234 // Paint our cell background. |
| 230 paintBackgroundsBehindCell(paintInfo, paintOffset, &m_renderTableCell); | 235 paintBackgroundsBehindCell(paintInfo, paintOffset, &m_renderTableCell); |
| 231 | 236 |
| 232 BoxPainter::paintBoxShadow(paintInfo, paintRect, m_renderTableCell.style(),
Inset); | 237 BoxPainter::paintBoxShadow(paintInfo, paintRect, m_renderTableCell.style(),
Inset); |
| 233 | 238 |
| 234 if (!m_renderTableCell.style()->hasBorder() || tableElt->collapseBorders()) | 239 if (!m_renderTableCell.style()->hasBorder() || tableElt->collapseBorders()) |
| 235 return; | 240 return; |
| 236 | 241 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 252 LayoutRect TableCellPainter::paintBounds(const LayoutPoint& paintOffset, PaintBo
undOffsetBehavior paintBoundOffsetBehavior) | 257 LayoutRect TableCellPainter::paintBounds(const LayoutPoint& paintOffset, PaintBo
undOffsetBehavior paintBoundOffsetBehavior) |
| 253 { | 258 { |
| 254 LayoutPoint adjustedPaintOffset = paintOffset; | 259 LayoutPoint adjustedPaintOffset = paintOffset; |
| 255 if (paintBoundOffsetBehavior == AddOffsetFromParent) | 260 if (paintBoundOffsetBehavior == AddOffsetFromParent) |
| 256 adjustedPaintOffset.moveBy(m_renderTableCell.location()); | 261 adjustedPaintOffset.moveBy(m_renderTableCell.location()); |
| 257 return LayoutRect(adjustedPaintOffset, LayoutSize(m_renderTableCell.pixelSna
ppedSize())); | 262 return LayoutRect(adjustedPaintOffset, LayoutSize(m_renderTableCell.pixelSna
ppedSize())); |
| 258 } | 263 } |
| 259 | 264 |
| 260 } // namespace blink | 265 } // namespace blink |
| 261 | 266 |
| OLD | NEW |