diff options
author | 2013-01-18 02:52:14 -0800 | |
---|---|---|
committer | 2013-01-18 02:52:14 -0800 | |
commit | db31867678bbe9169699dfa6dca3c9477d4c334b (patch) | |
tree | 26b4acc7aaf072010cb71a4102f50110ebe8560f /java/src | |
parent | 18f50e530d50a91f5c841c9f06e567349db0509c (diff) | |
parent | d5e869ced838454ede1d813d6a289fafc31b0665 (diff) | |
download | latinime-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.java | 13 |
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); } |