summaryrefslogtreecommitdiffstats
path: root/WebKit
diff options
context:
space:
mode:
authorCary Clark <cary@android.com>2010-11-17 08:23:36 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-11-17 08:23:36 -0800
commit8f3cb44800971537ad144b9edc6349abab633626 (patch)
tree1d1bab12b3b8d53d67b60761f597d2d764d2fb87 /WebKit
parent681bac951a4196fe5130cd22d4d052e6ef1e9b38 (diff)
parent07cc18eacd49c7df279f0759f23c63dab37c04a1 (diff)
downloadexternal_webkit-8f3cb44800971537ad144b9edc6349abab633626.zip
external_webkit-8f3cb44800971537ad144b9edc6349abab633626.tar.gz
external_webkit-8f3cb44800971537ad144b9edc6349abab633626.tar.bz2
Merge "improve select text anchor tracking"
Diffstat (limited to 'WebKit')
-rw-r--r--WebKit/android/nav/SelectText.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/WebKit/android/nav/SelectText.cpp b/WebKit/android/nav/SelectText.cpp
index 2a1ca34..352ec7e 100644
--- a/WebKit/android/nav/SelectText.cpp
+++ b/WebKit/android/nav/SelectText.cpp
@@ -1379,6 +1379,8 @@ void SelectText::extendSelection(const IntRect& vis, int x, int y)
setVisibleRect(vis);
SkIRect clipRect = m_visibleRect;
int base;
+ DBG_NAV_LOGD("extend x/y=%d,%d m_startOffset=%d,%d", x, y,
+ m_startOffset.fX, m_startOffset.fY);
x -= m_startOffset.fX;
y -= m_startOffset.fY;
if (m_startSelection) {
@@ -1397,6 +1399,8 @@ void SelectText::extendSelection(const IntRect& vis, int x, int y)
m_extendSelection = true;
m_original.fX = m_original.fY = 0;
}
+ DBG_NAV_LOGD("extend x/y=%d,%d m_original=%d,%d", x, y,
+ m_original.fX, m_original.fY);
x -= m_original.fX;
y -= m_original.fY;
if (!clipRect.contains(x, y) || !clipRect.contains(m_selStart)) {
@@ -1588,11 +1592,11 @@ bool SelectText::startSelection(const CachedRoot* root, const IntRect& vis,
m_picture->width(), m_picture->height(),left, top, right, bottom, x, y);
if (m_hitTopLeft && (!hitBottomRight || y - top < bottom - y)) {
DBG_NAV_LOG("hit top left");
- m_original.fX -= left;
+ m_original.fX -= m_selStart.fLeft;
m_original.fY -= (m_selStart.fTop + m_selStart.fBottom) >> 1;
} else if (hitBottomRight) {
DBG_NAV_LOG("hit bottom right");
- m_original.fX -= right;
+ m_original.fX -= m_selEnd.fRight;
m_original.fY -= (m_selEnd.fTop + m_selEnd.fBottom) >> 1;
}
return m_hitTopLeft || hitBottomRight;