| Index: Source/core/rendering/RenderLayer.cpp
|
| diff --git a/Source/core/rendering/RenderLayer.cpp b/Source/core/rendering/RenderLayer.cpp
|
| index 7f7c72fa218bc69f6565bb0e58aa426f1bb3ca60..5a8846ce4a37fbbc3859fa95f85ebacdb56d134f 100644
|
| --- a/Source/core/rendering/RenderLayer.cpp
|
| +++ b/Source/core/rendering/RenderLayer.cpp
|
| @@ -3216,9 +3216,27 @@ RenderLayer* RenderLayer::hitTestChildLayerColumns(RenderLayer* childLayer, Rend
|
| return 0;
|
| }
|
|
|
| +RenderLayer::PresenceOfBlockSelectionGaps RenderLayer::rendererHasBlockSelectionGaps()
|
| +{
|
| + if (!renderer()->isRenderBlock())
|
| + return LayerDoesNotHaveBlockSelectionGaps;
|
| +
|
| + RenderBlock* renderBlock = toRenderBlock(renderer());
|
| + LayoutRect gapRects = renderBlock->selectionGapRectsForRepaint(renderBlock);
|
| +
|
| + return gapRects.isEmpty() ? LayerDoesNotHaveBlockSelectionGaps : LayerHasBlockSelectionGaps;
|
| +}
|
| +
|
| +void RenderLayer::blockSelectionGapsBoundsChanged()
|
| +{
|
| + if (needsCompositedScrolling() && hasCompositedLayerMapping())
|
| + m_compositedLayerMapping->updateScrollingContentsForSelectionGaps();
|
| +}
|
| +
|
| void RenderLayer::addBlockSelectionGapsBounds(const LayoutRect& bounds)
|
| {
|
| m_blockSelectionGapsBounds.unite(enclosingIntRect(bounds));
|
| + blockSelectionGapsBoundsChanged();
|
| }
|
|
|
| void RenderLayer::clearBlockSelectionGapsBounds()
|
| @@ -3226,6 +3244,7 @@ void RenderLayer::clearBlockSelectionGapsBounds()
|
| m_blockSelectionGapsBounds = IntRect();
|
| for (RenderLayer* child = firstChild(); child; child = child->nextSibling())
|
| child->clearBlockSelectionGapsBounds();
|
| + blockSelectionGapsBoundsChanged();
|
| }
|
|
|
| void RenderLayer::repaintBlockSelectionGaps()
|
|
|