summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLeon Scroggins <scroggo@google.com>2010-02-24 12:17:35 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-02-24 12:17:35 -0800
commit58cf334ff4cfb7cf41e0d3eea86f129e25101bbf (patch)
treef8b2e85338e2732eeffd705438a67d450af9156c
parent963bb682bf47792118e2d1cc27ab354c468af12c (diff)
parente3844eeb349b9aa9437be6c43b0e1ecc151f6bd1 (diff)
downloadframeworks_base-58cf334ff4cfb7cf41e0d3eea86f129e25101bbf.zip
frameworks_base-58cf334ff4cfb7cf41e0d3eea86f129e25101bbf.tar.gz
frameworks_base-58cf334ff4cfb7cf41e0d3eea86f129e25101bbf.tar.bz2
Merge "Focus the IME on WebView when no textfield is in focus."
-rw-r--r--core/java/android/webkit/WebView.java34
1 files changed, 21 insertions, 13 deletions
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index adae0cb..067241a 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -3351,23 +3351,31 @@ public class WebView extends AbsoluteLayout
InputMethodManager imm = (InputMethodManager)
getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
+ // bring it back to the default scale so that user can enter text
+ boolean zoom = mActualScale < mDefaultScale;
+ if (zoom) {
+ mInZoomOverview = false;
+ mZoomCenterX = mLastTouchX;
+ mZoomCenterY = mLastTouchY;
+ // do not change text wrap scale so that there is no reflow
+ setNewZoomScale(mDefaultScale, false, false);
+ }
if (isTextView) {
rebuildWebTextView();
- if (!inEditingMode()) return;
- imm.showSoftInput(mWebTextView, 0);
- // bring it back to the default scale so that user can enter text
- if (mActualScale < mDefaultScale) {
- mInZoomOverview = false;
- mZoomCenterX = mLastTouchX;
- mZoomCenterY = mLastTouchY;
- // do not change text wrap scale so that there is no reflow
- setNewZoomScale(mDefaultScale, false, false);
- didUpdateTextViewBounds(true);
+ if (inEditingMode()) {
+ imm.showSoftInput(mWebTextView, 0);
+ if (zoom) {
+ didUpdateTextViewBounds(true);
+ }
+ return;
}
}
- else { // used by plugins
- imm.showSoftInput(this, 0);
- }
+ // Used by plugins.
+ // Also used if the navigation cache is out of date, and
+ // does not recognize that a textfield is in focus. In that
+ // case, use WebView as the targeted view.
+ // see http://b/issue?id=2457459
+ imm.showSoftInput(this, 0);
}
// Called by WebKit to instruct the UI to hide the keyboard