Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2404)

Unified Diff: Source/core/rendering/RenderLayer.cpp

Issue 303253004: Allow proper highlighting on universal overflow scroll. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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()

Powered by Google App Engine
This is Rietveld 408576698