diff options
| author | 2015-05-13 22:10:33 +0000 | |
|---|---|---|
| committer | 2015-05-13 22:10:37 +0000 | |
| commit | 5ad7fe4930b5566836debffc8976802c186b6ee3 (patch) | |
| tree | a21c23793a2f3e0abd95bd0fffbfcee30c85f0a5 | |
| parent | 07e02b6d25f5a731a36ad49b482e35c14c97cbdc (diff) | |
| parent | 97c381304207013fd95c7806df4dcca0c69006c0 (diff) | |
Merge "Update IME focus when the active view is losing the focus." into mnc-dev
| -rw-r--r-- | core/java/android/view/ViewRootImpl.java | 5 | ||||
| -rw-r--r-- | core/java/android/view/inputmethod/InputMethodManager.java | 36 | ||||
| -rw-r--r-- | core/java/android/webkit/FindActionModeCallback.java | 1 |
3 files changed, 7 insertions, 35 deletions
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 57c6cbf46941..e88c29eda21f 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -2018,7 +2018,6 @@ public final class ViewRootImpl implements ViewParent, mLastWasImTarget = imTarget; InputMethodManager imm = InputMethodManager.peekInstance(); if (imm != null && imTarget) { - imm.startGettingWindowFocus(mView); imm.onWindowFocus(mView, mView.findFocus(), mWindowAttributes.softInputMode, !mHasHadWindowFocus, mWindowAttributes.flags); @@ -3322,10 +3321,6 @@ public final class ViewRootImpl implements ViewParent, InputMethodManager imm = InputMethodManager.peekInstance(); if (mView != null) { - if (hasWindowFocus && imm != null && mLastWasImTarget && - !isInLocalFocusMode()) { - imm.startGettingWindowFocus(mView); - } mAttachInfo.mKeyDispatchState.reset(); mView.dispatchWindowFocusChanged(hasWindowFocus); mAttachInfo.mTreeObserver.dispatchOnWindowFocusChange(hasWindowFocus); diff --git a/core/java/android/view/inputmethod/InputMethodManager.java b/core/java/android/view/inputmethod/InputMethodManager.java index 568e16074daa..1fb791cf87ad 100644 --- a/core/java/android/view/inputmethod/InputMethodManager.java +++ b/core/java/android/view/inputmethod/InputMethodManager.java @@ -281,12 +281,7 @@ public final class InputMethodManager { boolean mFullscreenMode; // ----------------------------------------------------------- - - /** - * This is the root view of the overall window that currently has input - * method focus. - */ - View mCurRootView; + /** * This is the view that should currently be served by an input method, * regardless of the state of setting that up. @@ -806,7 +801,6 @@ public final class InputMethodManager { * Disconnect any existing input connection, clearing the served view. */ void finishInputLocked() { - mCurRootView = null; mNextServedView = null; if (mServedView != null) { if (DEBUG) Log.v(TAG, "FINISH INPUT: " + mServedView); @@ -1290,10 +1284,9 @@ public final class InputMethodManager { void focusInLocked(View view) { if (DEBUG) Log.v(TAG, "focusIn: " + view); - if (mCurRootView != view.getRootView()) { - // This is a request from a window that isn't in the window with - // IME focus, so ignore it. - if (DEBUG) Log.v(TAG, "Not IME target window, ignoring"); + if (!view.hasWindowFocus()) { + // This is a request from a window that doesn't have window focus, so ignore it. + if (DEBUG) Log.v(TAG, "Not focused window, ignoring"); return; } @@ -1310,16 +1303,9 @@ public final class InputMethodManager { if (DEBUG) Log.v(TAG, "focusOut: " + view + " mServedView=" + mServedView + " winFocus=" + view.hasWindowFocus()); - if (mServedView != view) { - // The following code would auto-hide the IME if we end up - // with no more views with focus. This can happen, however, - // whenever we go into touch mode, so it ends up hiding - // at times when we don't really want it to. For now it - // seems better to just turn it all off. - if (false && view.hasWindowFocus()) { - mNextServedView = null; - scheduleCheckFocusLocked(view); - } + if (mServedView == view && view.hasWindowFocus()) { + mNextServedView = null; + scheduleCheckFocusLocked(view); } } } @@ -1442,13 +1428,6 @@ public final class InputMethodManager { } } - /** @hide */ - public void startGettingWindowFocus(View rootView) { - synchronized (mH) { - mCurRootView = rootView; - } - } - /** * Report the current selection range. * @@ -2156,7 +2135,6 @@ public final class InputMethodManager { + " mBindSequence=" + mBindSequence + " mCurId=" + mCurId); p.println(" mCurMethod=" + mCurMethod); - p.println(" mCurRootView=" + mCurRootView); p.println(" mServedView=" + mServedView); p.println(" mNextServedView=" + mNextServedView); p.println(" mServedConnecting=" + mServedConnecting); diff --git a/core/java/android/webkit/FindActionModeCallback.java b/core/java/android/webkit/FindActionModeCallback.java index ab6a2f91f95e..6fef2d6ce66f 100644 --- a/core/java/android/webkit/FindActionModeCallback.java +++ b/core/java/android/webkit/FindActionModeCallback.java @@ -154,7 +154,6 @@ public class FindActionModeCallback implements ActionMode.Callback, TextWatcher, } public void showSoftInput() { - mInput.startGettingWindowFocus(mEditText.getRootView()); mInput.focusIn(mEditText); mInput.showSoftInput(mEditText, 0); } |