Chromium Code Reviews| Index: Source/core/rendering/RenderLayer.cpp |
| diff --git a/Source/core/rendering/RenderLayer.cpp b/Source/core/rendering/RenderLayer.cpp |
| index 734d8aa8e068f8ab94ece0e29d23f08f5f299f83..a9a38a61d5e4cdb76a837558a448b672a8746006 100644 |
| --- a/Source/core/rendering/RenderLayer.cpp |
| +++ b/Source/core/rendering/RenderLayer.cpp |
| @@ -3196,9 +3196,27 @@ RenderLayer* RenderLayer::hitTestChildLayerColumns(RenderLayer* childLayer, Rend |
| return 0; |
| } |
| +IntRect RenderLayer::blockSelectionGapsBounds() |
| +{ |
| + if (!renderer()->isRenderBlock()) |
| + return IntRect(); |
| + |
| + RenderBlock* renderBlock = toRenderBlock(renderer()); |
| + LayoutRect gapRects = renderBlock->selectionGapRectsForRepaint(renderBlock); |
| + |
| + return static_cast<IntRect>(gapRects); |
|
Ian Vollick
2014/06/03 17:11:47
Please be explicit about this conversion. Eg, use
|
| +} |
| + |
| +void RenderLayer::blockSelectionGapsBoundsChanged() |
| +{ |
| + if (needsCompositedScrolling() && hasCompositedLayerMapping()) |
| + m_compositedLayerMapping->updateScrollingContentsForSelectionGaps(blockSelectionGapsBounds()); |
| +} |
| + |
| void RenderLayer::addBlockSelectionGapsBounds(const LayoutRect& bounds) |
| { |
| m_blockSelectionGapsBounds.unite(enclosingIntRect(bounds)); |
| + blockSelectionGapsBoundsChanged(); |
| } |
| void RenderLayer::clearBlockSelectionGapsBounds() |
| @@ -3206,6 +3224,7 @@ void RenderLayer::clearBlockSelectionGapsBounds() |
| m_blockSelectionGapsBounds = IntRect(); |
| for (RenderLayer* child = firstChild(); child; child = child->nextSibling()) |
| child->clearBlockSelectionGapsBounds(); |
| + blockSelectionGapsBoundsChanged(); |
| } |
| void RenderLayer::repaintBlockSelectionGaps() |