diff options
author | 2010-11-22 17:20:48 -0800 | |
---|---|---|
committer | 2010-11-22 22:41:17 -0800 | |
commit | 0d0a46da0393c6dd73cccf5e22cb0dd70c99e15a (patch) | |
tree | 104138451c11cea6d1f8d18592187137a6cc22e9 /java/src | |
parent | 04448c2978a81b8c479b254e0f40bce128da8f7b (diff) | |
download | latinime-0d0a46da0393c6dd73cccf5e22cb0dd70c99e15a.tar.gz latinime-0d0a46da0393c6dd73cccf5e22cb0dd70c99e15a.tar.xz latinime-0d0a46da0393c6dd73cccf5e22cb0dd70c99e15a.zip |
Fix caps lock release in non-distinct multi touch device
Bug: 3221869
Change-Id: I7c5d407c465f22945cba37e42683345913b43acc
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/inputmethod/latin/KeyboardSwitcher.java | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java b/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java index 08ff41b6f..f1f8dc27d 100644 --- a/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java +++ b/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java @@ -412,8 +412,17 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha private void setManualTemporaryUpperCase(boolean shifted) { LatinKeyboard latinKeyboard = getLatinKeyboard(); - if (latinKeyboard != null && latinKeyboard.setShifted(shifted)) { - mInputView.invalidateAllKeys(); + if (latinKeyboard != null) { + // On non-distinct multi touch panel device, we should also turn off the shift locked + // state when shift key is pressed to go to normal mode. + // On the other hand, on distinct multi touch panel device, turning off the shift locked + // state with shift key pressing is handled by onReleaseShift(). + if (!hasDistinctMultitouch() && !shifted && latinKeyboard.isShiftLocked()) { + latinKeyboard.setShiftLocked(false); + } + if (latinKeyboard.setShifted(shifted)) { + mInputView.invalidateAllKeys(); + } } } @@ -424,6 +433,9 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha } } + /** + * Toggle keyboard shift state triggered by user touch event. + */ public void toggleShift() { mInputMethodService.mHandler.cancelUpdateShiftState(); if (DEBUG_STATE) @@ -463,6 +475,9 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha } } + /** + * Update keyboard shift state triggered by connected EditText status change. + */ public void updateShiftState() { final ShiftKeyState shiftKeyState = mShiftKeyState; if (DEBUG_STATE) |