From df71abcaa1e7975b2fbc7522d006829223093825 Mon Sep 17 00:00:00 2001 From: John Reck Date: Thu, 2 Feb 2012 13:16:04 -0800 Subject: Snap selection handles to end of text Instead of using WebKit's cursor location use the start and end of the text highlight region since we only highlight text and not other content like images Change-Id: I1b84b8a0be34c56e87169d215c581fdada745362 --- Source/WebKit/android/nav/WebView.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'Source/WebKit/android/nav/WebView.cpp') diff --git a/Source/WebKit/android/nav/WebView.cpp b/Source/WebKit/android/nav/WebView.cpp index efdb67f..62cc6ce 100644 --- a/Source/WebKit/android/nav/WebView.cpp +++ b/Source/WebKit/android/nav/WebView.cpp @@ -1420,15 +1420,16 @@ int getHandleLayerId(SelectText::HandleId handleId, SkIRect& cursorRect) { if (!selectText) return -1; int layerId = selectText->caretLayerId(handleId); - const IntRect& r = selectText->caretRect(handleId); - cursorRect.set(r.x(), r.y(), r.maxX(), r.maxY()); + IntRect rect = selectText->caretRect(handleId); if (layerId != -1) { + // We need to make sure the drawTransform is up to date as this is + // called before a draw() or drawGL() + m_baseLayer->updateLayerPositions(m_visibleRect); LayerAndroid* root = compositeRoot(); LayerAndroid* layer = root ? root->findById(layerId) : 0; - IntPoint offset; - WebViewCore::layerToAbsoluteOffset(layer, offset); - cursorRect.offset(offset.x(), offset.y()); + rect = layer->drawTransform()->mapRect(rect); } + cursorRect.set(rect.x(), rect.y(), rect.maxX(), rect.maxY()); return layerId; } -- cgit v1.1