summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorLeon Scroggins <scroggo@google.com>2011-02-02 13:41:19 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-02-02 13:41:19 -0800
commit8257e4d7e2b1ac9b8310a326cf8f4b53aba760ec (patch)
treecc694b06c25ff96c6dcc653e81903a6b6057f81a /core
parentf8cc65c4ca1851ad279cd961b30e1bc4d48e43e4 (diff)
parente89d6418bee849880eca3bc232d1579e6f6813e4 (diff)
downloadframeworks_base-8257e4d7e2b1ac9b8310a326cf8f4b53aba760ec.zip
frameworks_base-8257e4d7e2b1ac9b8310a326cf8f4b53aba760ec.tar.gz
frameworks_base-8257e4d7e2b1ac9b8310a326cf8f4b53aba760ec.tar.bz2
Merge "DO NOT MERGE. Only scroll if the IME is open in certain cases." into honeycomb
Diffstat (limited to 'core')
-rw-r--r--core/java/android/webkit/WebView.java10
-rw-r--r--core/java/android/webkit/WebViewCore.java5
2 files changed, 13 insertions, 2 deletions
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index f91ae9f..fa99eae 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -7144,6 +7144,16 @@ public class WebView extends AbsoluteLayout
setContentScrollTo(msg.arg1, msg.arg2);
break;
case SCROLL_TO_MSG_ID:
+ if (((Boolean) msg.obj).booleanValue()) {
+ // This scroll is intended to bring the textfield into
+ // view, but is only necessary if the IME is showing
+ InputMethodManager imm = InputMethodManager.peekInstance();
+ if (imm == null || !imm.isAcceptingText()
+ || (!imm.isActive(WebView.this) && (!inEditingMode()
+ || !imm.isActive(mWebTextView)))) {
+ break;
+ }
+ }
if (setContentScrollTo(msg.arg1, msg.arg2)) {
// if we can't scroll to the exact position due to pin,
// send a message to WebCore to re-scroll when we get a
diff --git a/core/java/android/webkit/WebViewCore.java b/core/java/android/webkit/WebViewCore.java
index b949a41..5bdf408 100644
--- a/core/java/android/webkit/WebViewCore.java
+++ b/core/java/android/webkit/WebViewCore.java
@@ -2120,7 +2120,7 @@ final class WebViewCore {
}
// called by JNI
- private void contentScrollTo(int x, int y) {
+ private void contentScrollTo(int x, int y, boolean onlyIfImeIsShowing) {
if (!mBrowserFrame.firstLayoutDone()) {
/*
* WebKit restore state will be called before didFirstLayout(),
@@ -2133,7 +2133,8 @@ final class WebViewCore {
}
if (mWebView != null) {
Message msg = Message.obtain(mWebView.mPrivateHandler,
- WebView.SCROLL_TO_MSG_ID, x, y);
+ WebView.SCROLL_TO_MSG_ID, x, y,
+ Boolean.valueOf(onlyIfImeIsShowing));
if (mDrawIsScheduled) {
mEventHub.sendMessage(Message.obtain(null,
EventHub.MESSAGE_RELAY, msg));