diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java index 31d98a6769b7a25c70cd3f8933ef12fdb42352b9..0fb90143dc63d0d96c944d4a4c6a5153349d6fd0 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java @@ -576,7 +576,7 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha } break; case AUTO_MODE_SWITCH_STATE_SYMBOL_BEGIN: - if (key != Keyboard.CODE_SPACE && key != Keyboard.CODE_ENTER && key > 0) { + if (key != Keyboard.CODE_SPACE && key != Keyboard.CODE_ENTER && key >= 0) { mAutoModeSwitchState = AUTO_MODE_SWITCH_STATE_SYMBOL; } break; diff --git a/java/src/com/android/inputmethod/keyboard/PointerTracker.java b/java/src/com/android/inputmethod/keyboard/PointerTracker.java index ffaf3db6a46a6573a3c84d95911d5863e27866c4..15eab8fed458b91a246bf1d7b8e859df37596626 100644 --- a/java/src/com/android/inputmethod/keyboard/PointerTracker.java +++ b/java/src/com/android/inputmethod/keyboard/PointerTracker.java @@ -296,6 +296,7 @@ public class PointerTracker { // onRelease() first to notify that the previous key has been released, then call // onPress() to notify that the new key is being pressed. callListenerOnRelease(oldKey.mCodes[0]); + mHandler.cancelLongPressTimers(); if (mIsAllowedSlidingKeyInput) { resetMultiTap(); callListenerOnPress(getKey(keyIndex).mCodes[0]); @@ -312,10 +313,10 @@ public class PointerTracker { // The pointer has been slid out from the previous key, we must call onRelease() to // notify that the previous key has been released. callListenerOnRelease(oldKey.mCodes[0]); + mHandler.cancelLongPressTimers(); if (mIsAllowedSlidingKeyInput) { resetMultiTap(); keyState.onMoveToNewKey(keyIndex, x ,y); - mHandler.cancelLongPressTimers(); } else { setAlreadyProcessed(); showKeyPreviewAndUpdateKeyGraphics(NOT_A_KEY); @@ -332,10 +333,10 @@ public class PointerTracker { if (DEBUG_EVENT) printTouchEvent("onUpEvent :", x, y, eventTime); showKeyPreviewAndUpdateKeyGraphics(NOT_A_KEY); - if (mKeyAlreadyProcessed) - return; mHandler.cancelKeyTimers(); mHandler.cancelPopupPreview(); + if (mKeyAlreadyProcessed) + return; final PointerTrackerKeyState keyState = mKeyState; int keyIndex = keyState.onUpKey(x, y); if (isMinorMoveBounce(x, y, keyIndex)) { @@ -438,7 +439,7 @@ public class PointerTracker { } if (key.mOutputText != null) { callListenerOnText(key.mOutputText); - callListenerOnRelease(NOT_A_KEY); + callListenerOnRelease(key.mCodes[0]); } else { int code = key.mCodes[0]; final int[] codes = mKeyDetector.newCodeArray(); diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index 12a24e87ae333115142a4212ac044100702b2d4c..3a3a000de3c0bdaabc680972682d0376f48ca2a1 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -1128,6 +1128,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen ic.commitText(text, 1); ic.endBatchEdit(); mKeyboardSwitcher.updateShiftState(); + mKeyboardSwitcher.onKey(0); // dummy key code. mJustReverted = false; mJustAddedAutoSpace = false; mEnteredText = text;