aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorJean Chalard <jchalard@google.com>2013-01-18 02:52:14 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2013-01-18 02:52:14 -0800
commitdb31867678bbe9169699dfa6dca3c9477d4c334b (patch)
tree26b4acc7aaf072010cb71a4102f50110ebe8560f /java/src
parent18f50e530d50a91f5c841c9f06e567349db0509c (diff)
parentd5e869ced838454ede1d813d6a289fafc31b0665 (diff)
downloadlatinime-db31867678bbe9169699dfa6dca3c9477d4c334b.tar.gz
latinime-db31867678bbe9169699dfa6dca3c9477d4c334b.tar.xz
latinime-db31867678bbe9169699dfa6dca3c9477d4c334b.zip
am d5e869ce: Merge "Track handled events to consistently return handled status (C1)"
* commit 'd5e869ced838454ede1d813d6a289fafc31b0665': Track handled events to consistently return handled status (C1)
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIME.java13
1 files changed, 12 insertions, 1 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index f4b7a1708..829c5e53d 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -82,6 +82,7 @@ import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Locale;
+import java.util.TreeSet;
/**
* Input method implementation for Qwerty'ish keyboard.
@@ -167,6 +168,7 @@ public final class LatinIME extends InputMethodService implements KeyboardAction
private int mDeleteCount;
private long mLastKeyTime;
private int mActionId;
+ private TreeSet<Long> mCurrentlyPressedHardwareKeys = CollectionUtils.newTreeSet();
// Member variables for remembering the current device orientation.
private int mDisplayOrientation;
@@ -721,6 +723,7 @@ public final class LatinIME extends InputMethodService implements KeyboardAction
resetComposingState(true /* alsoResetLastComposedWord */);
mDeleteCount = 0;
mSpaceState = SPACE_STATE_NONE;
+ mCurrentlyPressedHardwareKeys.clear();
if (mSuggestionStripView != null) {
// This will set the punctuation suggestions if next word suggestion is off;
@@ -2429,12 +2432,20 @@ public final class LatinIME extends InputMethodService implements KeyboardAction
// onHardwareKeyEvent, like onKeyDown returns true if it handled the event, false if
// it doesn't know what to do with it and leave it to the application. For example,
// hardware key events for adjusting the screen's brightness are passed as is.
- if (mEventInterpreter.onHardwareKeyEvent(event)) return true;
+ if (mEventInterpreter.onHardwareKeyEvent(event)) {
+ final long keyIdentifier = event.getDeviceId() << 32 + event.getKeyCode();
+ mCurrentlyPressedHardwareKeys.add(keyIdentifier);
+ return true;
+ }
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onKeyUp(final int keyCode, final KeyEvent event) {
+ final long keyIdentifier = event.getDeviceId() << 32 + event.getKeyCode();
+ if (mCurrentlyPressedHardwareKeys.remove(keyIdentifier)) {
+ return true;
+ }
return super.onKeyUp(keyCode, event);
}