am 8257e4d7: Merge "DO NOT MERGE. Only scroll if the IME is open in certain cases." into honeycomb

* commit '8257e4d7e2b1ac9b8310a326cf8f4b53aba760ec':
  DO NOT MERGE. Only scroll if the IME is open in certain cases.
This commit is contained in:
Leon Scroggins
2011-02-02 15:52:00 -08:00
committed by Android Git Automerger
2 changed files with 13 additions and 2 deletions

View File

@@ -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

View File

@@ -2124,7 +2124,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(),
@@ -2137,7 +2137,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));