Ignore releasing shift key caused by long press
Bug: 5694715
Change-Id: If7b84f547f5701e84d740f186d284273565b7eba
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
index 4d30077..1d9ca78 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
@@ -566,8 +566,8 @@
if (shiftKeyState.isMomentary()) {
// After chording input while normal state.
toggleShift();
- } else if (isShiftLocked() && !isShiftLockShifted() && shiftKeyState.isPressing()
- && !withSliding) {
+ } else if (isShiftLocked() && !isShiftLockShifted() && (shiftKeyState.isPressing()
+ || shiftKeyState.isPressingOnShifted()) && !withSliding) {
// Shift has been long pressed, ignore this release.
} else if (isShiftLocked() && !shiftKeyState.isIgnoring() && !withSliding) {
// Shift has been pressed without chording while caps lock state.