aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2010-12-19 20:27:11 +0900
committerTadashi G. Takaoka <takaoka@google.com>2010-12-19 21:57:50 +0900
commit5ef421b58afa7bc58be40ed9331ce04998efbf56 (patch)
tree22d7e4095ae9ec9f56c69af0f5a5522a3aae052a /java/src
parentcc0e41222d4873cd9f6cf530d66852ca26203a5a (diff)
downloadlatinime-5ef421b58afa7bc58be40ed9331ce04998efbf56.tar.gz
latinime-5ef421b58afa7bc58be40ed9331ce04998efbf56.tar.xz
latinime-5ef421b58afa7bc58be40ed9331ce04998efbf56.zip
Cancel long press timer when sliding key input is not allowed
This change also fixes auto snap back behavior of key which has output text, such as smiley key. Bug: 3297825 Change-Id: Ia06e1abc0fbdff2a26504ddcce1dc7f933b45453
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java2
-rw-r--r--java/src/com/android/inputmethod/keyboard/PointerTracker.java9
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIME.java1
3 files changed, 7 insertions, 5 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
index 31d98a676..0fb90143d 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 ffaf3db6a..15eab8fed 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 12a24e87a..3a3a000de 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;