summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorAmith Yamasani <yamasani@google.com>2010-01-05 14:17:47 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-01-05 14:17:47 -0800
commit4dfa3b706c1fa03962a7c6ded65bbedfa2e6b333 (patch)
treef17e45913102be0a3765207150055a06c8c64546 /core/java
parentf2c68d64ee418f5e042b7d61ac406492b436b395 (diff)
parent4d2c27b145969f4467cf70037eecf730572dcf5d (diff)
Merge "Fix for 2345922: Press and hold space in ?123 mode will give ....."
Diffstat (limited to 'core/java')
-rwxr-xr-xcore/java/android/inputmethodservice/KeyboardView.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/core/java/android/inputmethodservice/KeyboardView.java b/core/java/android/inputmethodservice/KeyboardView.java
index 76131fcd6316..b0c39093976b 100755
--- a/core/java/android/inputmethodservice/KeyboardView.java
+++ b/core/java/android/inputmethodservice/KeyboardView.java
@@ -1118,6 +1118,11 @@ public class KeyboardView extends View implements View.OnClickListener {
if (action == MotionEvent.ACTION_DOWN) mSwipeTracker.clear();
mSwipeTracker.addMovement(me);
+ // Ignore all motion events until a DOWN.
+ if (mAbortKey && action != MotionEvent.ACTION_DOWN) {
+ return true;
+ }
+
if (mGestureDetector.onTouchEvent(me)) {
showPreview(NOT_A_KEY);
mHandler.removeMessages(MSG_REPEAT);
@@ -1150,9 +1155,14 @@ public class KeyboardView extends View implements View.OnClickListener {
mKeys[keyIndex].codes[0] : 0);
if (mCurrentKey >= 0 && mKeys[mCurrentKey].repeatable) {
mRepeatKeyIndex = mCurrentKey;
- repeatKey();
Message msg = mHandler.obtainMessage(MSG_REPEAT);
mHandler.sendMessageDelayed(msg, REPEAT_START_DELAY);
+ repeatKey();
+ // Delivering the key could have caused an abort
+ if (mAbortKey) {
+ mRepeatKeyIndex = NOT_A_KEY;
+ break;
+ }
}
if (mCurrentKey != NOT_A_KEY) {
Message msg = mHandler.obtainMessage(MSG_LONGPRESS, me);