From c6c549d8d2eb30c66e43d6559a35ee1a07c58e68 Mon Sep 17 00:00:00 2001 From: George Mount Date: Thu, 15 Mar 2012 16:39:16 -0700 Subject: Update edit text size when the text changes so scroll works. Bug 6176413 Webkit Change: I487322ca9578c003f937b92ca4e8d46d34ea8c78 Change-Id: I6b8f244cd747d6d19c261d685a3cfb9ef4d71ec3 --- core/java/android/webkit/WebViewClassic.java | 7 +++++++ core/java/android/webkit/WebViewCore.java | 12 ++++++++++++ 2 files changed, 19 insertions(+) diff --git a/core/java/android/webkit/WebViewClassic.java b/core/java/android/webkit/WebViewClassic.java index 4c9e10c..ed43043 100644 --- a/core/java/android/webkit/WebViewClassic.java +++ b/core/java/android/webkit/WebViewClassic.java @@ -1254,6 +1254,7 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc static final int FOCUS_NODE_CHANGED = 147; static final int AUTOFILL_FORM = 148; static final int ANIMATE_TEXT_SCROLL = 149; + static final int EDIT_TEXT_SIZE_CHANGED = 150; private static final int FIRST_PACKAGE_MSG_ID = SCROLL_TO_MSG_ID; private static final int LAST_PACKAGE_MSG_ID = HIT_TEST_RESULT; @@ -8504,6 +8505,12 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc computeEditTextScroll(); break; + case EDIT_TEXT_SIZE_CHANGED: + if (msg.arg1 == mFieldPointer) { + mEditTextContent.set((Rect)msg.obj); + } + break; + default: super.handleMessage(msg); break; diff --git a/core/java/android/webkit/WebViewCore.java b/core/java/android/webkit/WebViewCore.java index d0ebdd4..d784b08 100644 --- a/core/java/android/webkit/WebViewCore.java +++ b/core/java/android/webkit/WebViewCore.java @@ -2779,6 +2779,18 @@ public final class WebViewCore { } // called by JNI + private void updateTextSizeAndScroll(int pointer, int width, int height, + int scrollX, int scrollY) { + if (mWebView != null) { + Rect rect = new Rect(-scrollX, -scrollY, width - scrollX, + height - scrollY); + Message.obtain(mWebView.mPrivateHandler, + WebViewClassic.EDIT_TEXT_SIZE_CHANGED, pointer, 0, rect) + .sendToTarget(); + } + } + + // called by JNI private void clearTextEntry() { if (mWebView == null) return; Message.obtain(mWebView.mPrivateHandler, -- cgit v1.1