diff options
author | 2014-03-13 01:56:39 -0700 | |
---|---|---|
committer | 2014-03-13 01:56:39 -0700 | |
commit | ef5a849240afca849e36ddd8f90df71d19bb0365 (patch) | |
tree | f5d4fc2402c65edf853b1ab7e30e89beaedb8995 /java/src/com/android/inputmethod/event/HardwareKeyboardEventDecoder.java | |
parent | 5241acab268ddf6acb9e916b8e4a72e623c39ddb (diff) | |
parent | 66dce6003f8f1e45eb23c6e2cc273ba07e3065cd (diff) | |
download | latinime-ef5a849240afca849e36ddd8f90df71d19bb0365.tar.gz latinime-ef5a849240afca849e36ddd8f90df71d19bb0365.tar.xz latinime-ef5a849240afca849e36ddd8f90df71d19bb0365.zip |
am 66dce600: Merge "[CB01] Reset some old assumptions about dead keys"
* commit '66dce6003f8f1e45eb23c6e2cc273ba07e3065cd':
[CB01] Reset some old assumptions about dead keys
Diffstat (limited to 'java/src/com/android/inputmethod/event/HardwareKeyboardEventDecoder.java')
-rw-r--r-- | java/src/com/android/inputmethod/event/HardwareKeyboardEventDecoder.java | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/java/src/com/android/inputmethod/event/HardwareKeyboardEventDecoder.java b/java/src/com/android/inputmethod/event/HardwareKeyboardEventDecoder.java index 720d07433..635f3b123 100644 --- a/java/src/com/android/inputmethod/event/HardwareKeyboardEventDecoder.java +++ b/java/src/com/android/inputmethod/event/HardwareKeyboardEventDecoder.java @@ -47,27 +47,33 @@ public class HardwareKeyboardEventDecoder implements HardwareEventDecoder { // the key for 'A' or Space, but also Backspace or Ctrl or Caps Lock. final int keyCode = keyEvent.getKeyCode(); if (KeyEvent.KEYCODE_DEL == keyCode) { - return Event.createCommittableEvent(Constants.CODE_DELETE, null /* next */); + return Event.createInputKeypressEvent(Event.NOT_A_CODE_POINT, Constants.CODE_DELETE, + null /* next */); } if (keyEvent.isPrintingKey() || KeyEvent.KEYCODE_SPACE == keyCode || KeyEvent.KEYCODE_ENTER == keyCode) { if (0 != (codePointAndFlags & KeyCharacterMap.COMBINING_ACCENT)) { // A dead key. return Event.createDeadEvent( - codePointAndFlags & KeyCharacterMap.COMBINING_ACCENT_MASK, null /* next */); + codePointAndFlags & KeyCharacterMap.COMBINING_ACCENT_MASK, keyCode, + null /* next */); } if (KeyEvent.KEYCODE_ENTER == keyCode) { // The Enter key. If the Shift key is not being pressed, this should send a // CODE_ENTER to trigger the action if any, or a carriage return otherwise. If the // Shift key is being pressed, this should send a CODE_SHIFT_ENTER and let // Latin IME decide what to do with it. - return Event.createCommittableEvent(keyEvent.isShiftPressed() - ? Constants.CODE_SHIFT_ENTER : Constants.CODE_ENTER, - null /* next */); + if (keyEvent.isShiftPressed()) { + return Event.createInputKeypressEvent(Event.NOT_A_CODE_POINT, + Constants.CODE_SHIFT_ENTER, null /* next */); + } else { + return Event.createInputKeypressEvent(Constants.CODE_ENTER, keyCode, + null /* next */); + } } - // If not Enter, then we have a committable character. This should be committed - // right away, taking into account the current state. - return Event.createCommittableEvent(codePointAndFlags, null /* next */); + // If not Enter, then this is just a regular keypress event for a normal character + // that can be committed right away, taking into account the current state. + return Event.createInputKeypressEvent(keyCode, codePointAndFlags, null /* next */); } return Event.createNotHandledEvent(); } |