diff options
| author | Leon Scroggins <scroggo@google.com> | 2010-02-24 12:17:35 -0800 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-02-24 12:17:35 -0800 |
| commit | 58cf334ff4cfb7cf41e0d3eea86f129e25101bbf (patch) | |
| tree | f8b2e85338e2732eeffd705438a67d450af9156c | |
| parent | 963bb682bf47792118e2d1cc27ab354c468af12c (diff) | |
| parent | e3844eeb349b9aa9437be6c43b0e1ecc151f6bd1 (diff) | |
| download | frameworks_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.java | 34 |
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 |
