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

Commit f735117d authored by Jean Chalard's avatar Jean Chalard
Browse files

Fix a pernicious bug with caps.

What's happening here is, setAlphabetKeyboard sets the
keyboard to AUTOMATIC_SHIFTED and updates the keyboard, then
restoring the keyboard old state sets it back to UNSHIFTED without
updating it. When we finally know what the correct value is,
we try to set it to UNSHIFTED, but since that's already the currently
recorded state, it skips updating the keyboard forever.

The solution is to avoid setting the shift state without updating the
keyboard.

Bug: 10948582
Change-Id: Ic8670401e378f8284e851281f91a9ad93eac8e90
parent 74577bed
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -178,6 +178,8 @@ public final class KeyboardState {
            if (!state.mIsAlphabetShiftLocked) {
                setShifted(state.mShiftMode);
            }
            // TODO: is this the right place to do this? Should we do this in setShift* instead?
            mSwitchActions.requestUpdatingShiftState();
        } else {
            mPrevMainKeyboardWasShiftLocked = state.mIsAlphabetShiftLocked;
        }
+1 −0
Original line number Diff line number Diff line
@@ -2929,6 +2929,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
            return;
        }
        tryFixLyingCursorPosition();
        mKeyboardSwitcher.updateShiftState();
        if (tryResumeSuggestions) mHandler.postResumeSuggestions();
    }