Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 09170888 authored by Justin Ho's avatar Justin Ho Committed by Android Git Automerger
Browse files

am cc1bd4bb: am c470b2dd: Merge "Part of fixing issue #6006757: Keyboard...

am cc1bd4bb: am c470b2dd: Merge "Part of fixing issue #6006757: Keyboard dismissal lags" into ics-mr1

* commit 'cc1bd4bb':
  Part of fixing issue #6006757: Keyboard dismissal lags
parents 22182aa3 cc1bd4bb
Loading
Loading
Loading
Loading
+22 −11
Original line number Diff line number Diff line
@@ -355,9 +355,11 @@ public final class InputMethodManager {
                            if (mServedView != null && mServedView.isFocused()) {
                                mServedConnecting = true;
                            }
                        }
                            if (mActive) {
                                startInputInner();
                            }
                        }
                    }
                    return;
                }
                case MSG_SET_ACTIVE: {
@@ -1127,15 +1129,21 @@ public final class InputMethodManager {
     * @hide
     */
    public void checkFocus() {
        if (checkFocusNoStartInput()) {
            startInputInner();
        }
    }

    private boolean checkFocusNoStartInput() {
        // This is called a lot, so short-circuit before locking.
        if (mServedView == mNextServedView && !mNextServedNeedsStart) {
            return;
            return false;
        }

        InputConnection ic = null;
        synchronized (mH) {
            if (mServedView == mNextServedView && !mNextServedNeedsStart) {
                return;
                return false;
            }
            if (DEBUG) Log.v(TAG, "checkFocus: view=" + mServedView
                    + " next=" + mNextServedView
@@ -1148,7 +1156,7 @@ public final class InputMethodManager {
                // but no longer do.  We should make sure the input method is
                // no longer shown, since it serves no purpose.
                closeCurrentInput();
                return;
                return false;
            }

            ic = mServedInputConnection;
@@ -1163,7 +1171,7 @@ public final class InputMethodManager {
            ic.finishComposingText();
        }

        startInputInner();
        return true;
    }
    
    void closeCurrentInput() {
@@ -1192,7 +1200,7 @@ public final class InputMethodManager {
            focusInLocked(focusedView != null ? focusedView : rootView);
        }
        
        checkFocus();
        boolean startInput = checkFocusNoStartInput();
        
        synchronized (mH) {
            try {
@@ -1201,6 +1209,9 @@ public final class InputMethodManager {
                mService.windowGainedFocus(mClient, rootView.getWindowToken(),
                        focusedView != null, isTextEditor, softInputMode, first,
                        windowFlags);
                if (startInput) {
                    startInputInner();
                }
            } catch (RemoteException e) {
            }
        }