Chromium Code Reviews| Index: Source/core/paint/BlockFlowPainter.cpp |
| diff --git a/Source/core/paint/BlockFlowPainter.cpp b/Source/core/paint/BlockFlowPainter.cpp |
| index e7cc6442b07763df355665be6c824d19b3a12f02..b031906c3ce9a644c9a55c0cb41fcad9a8b0d469 100644 |
| --- a/Source/core/paint/BlockFlowPainter.cpp |
| +++ b/Source/core/paint/BlockFlowPainter.cpp |
| @@ -53,6 +53,9 @@ void BlockFlowPainter::paintSelection(const PaintInfo& paintInfo, const LayoutPo |
| if (!m_layoutBlockFlow.shouldPaintSelectionGaps()) |
| return; |
| + if (LayoutObjectDrawingRecorder::useCachedDrawingIfPossible(*paintInfo.context, m_layoutBlockFlow, DisplayItem::SelectionGap)) |
| + return; |
| + |
| LayoutUnit lastTop = 0; |
| LayoutUnit lastLeft = m_layoutBlockFlow.logicalLeftSelectionOffset(&m_layoutBlockFlow, lastTop); |
| LayoutUnit lastRight = m_layoutBlockFlow.logicalRightSelectionOffset(&m_layoutBlockFlow, lastTop); |
| @@ -65,9 +68,7 @@ void BlockFlowPainter::paintSelection(const PaintInfo& paintInfo, const LayoutPo |
| LayoutObjectDrawingRecorder recorder(*paintInfo.context, m_layoutBlockFlow, DisplayItem::SelectionGap, bounds); |
| ClipScope clipScope(paintInfo.context); |
| - LayoutRect gapRectsBounds = m_layoutBlockFlow.selectionGaps(&m_layoutBlockFlow, paintOffset, LayoutSize(), lastTop, lastLeft, lastRight, |
| - recorder.canUseCachedDrawing() ? nullptr : &paintInfo, |
| - recorder.canUseCachedDrawing() ? nullptr : &clipScope); |
| + LayoutRect gapRectsBounds = m_layoutBlockFlow.selectionGaps(&m_layoutBlockFlow, paintOffset, LayoutSize(), lastTop, lastLeft, lastRight, &paintInfo, &clipScope); |
| // TODO(wkorman): Rework below to process paint invalidation rects during layout rather than paint. |
|
Xianzhu
2015/07/03 01:24:41
If this TODO is still valid, then we can't early r
pdr.
2015/07/03 02:38:04
Good catch. Fixing this required a small amount of
|
| if (!gapRectsBounds.isEmpty()) { |
| DeprecatedPaintLayer* layer = m_layoutBlockFlow.enclosingLayer(); |