diff options
Diffstat (limited to 'core/java/android/webkit/WebView.java')
-rw-r--r-- | core/java/android/webkit/WebView.java | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index 3f5b45e..fbafc64 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -2822,6 +2822,34 @@ public class WebView extends AbsoluteLayout return result; } + int getBlockLeftEdge(int x, int y, float readingScale) { + if (!sDisableNavcache) { + return nativeGetBlockLeftEdge(x, y, readingScale); + } + + float invReadingScale = 1.0f / readingScale; + int readingWidth = (int) (getViewWidth() * invReadingScale); + int left = NO_LEFTEDGE; + if (mFocusedNode != null) { + final int length = mFocusedNode.mEnclosingParentRects.length; + for (int i = 0; i < length; i++) { + Rect rect = mFocusedNode.mEnclosingParentRects[i]; + if (rect.width() < mFocusedNode.mHitTestSlop) { + // ignore bounding boxes that are too small + continue; + } else if (left != NO_LEFTEDGE && rect.width() > readingWidth) { + // stop when bounding box doesn't fit the screen width + // at reading scale + break; + } + + left = rect.left; + } + } + + return left; + } + // Called by JNI when the DOM has changed the focus. Clear the focus so // that new keys will go to the newly focused field private void domChangedFocus() { |