summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorGeorge Mount <mount@google.com>2012-05-21 13:00:14 -0700
committerGeorge Mount <mount@google.com>2012-05-22 09:46:13 -0700
commit12221d154023032d41d38dff5ee899aa485c43dd (patch)
tree6698c457487485f4da95514aba5053cebc6a79db /core/java
parentb999b22eca779b283ceb2132371d2d3ecc88514e (diff)
DO NOT MERGE Consider current scroll position to move text field into view.
Bug 6530008 Change-Id: I6542dab70b64f809ec5dd4deb3511f8aa38278e1
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/webkit/WebViewClassic.java16
1 files changed, 9 insertions, 7 deletions
diff --git a/core/java/android/webkit/WebViewClassic.java b/core/java/android/webkit/WebViewClassic.java
index ab8bc64cd6c6..b4a312d750ea 100644
--- a/core/java/android/webkit/WebViewClassic.java
+++ b/core/java/android/webkit/WebViewClassic.java
@@ -5504,8 +5504,8 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc
if (visibleRect.contains(mEditTextContentBounds)) {
return; // no need to scroll
}
- nativeFindMaxVisibleRect(mNativeClass, mEditTextLayerId, visibleRect);
syncSelectionCursors();
+ nativeFindMaxVisibleRect(mNativeClass, mEditTextLayerId, visibleRect);
final int buffer = Math.max(1, viewToContentDimension(EDIT_RECT_BUFFER));
Rect showRect = new Rect(
Math.max(0, mEditTextContentBounds.left - buffer),
@@ -5538,17 +5538,19 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc
return; // no need to scroll
}
- int scrollX = visibleRect.left;
+ int scrollX = viewToContentX(getScrollX());
if (visibleRect.left > showRect.left) {
- scrollX = showRect.left;
+ // We are scrolled too far
+ scrollX += showRect.left - visibleRect.left;
} else if (visibleRect.right < showRect.right) {
- scrollX = Math.max(0, showRect.right - visibleRect.width());
+ // We aren't scrolled enough to include the right
+ scrollX += showRect.right - visibleRect.right;
}
- int scrollY = visibleRect.top;
+ int scrollY = viewToContentY(getScrollY());
if (visibleRect.top > showRect.top) {
- scrollY = showRect.top;
+ scrollY += showRect.top - visibleRect.top;
} else if (visibleRect.bottom < showRect.bottom) {
- scrollY = Math.max(0, showRect.bottom - visibleRect.height());
+ scrollY += showRect.bottom - visibleRect.bottom;
}
contentScrollTo(scrollX, scrollY, false);