aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/event/HardwareKeyboardEventDecoder.java
diff options
context:
space:
mode:
authorJean Chalard <jchalard@google.com>2014-03-13 08:53:29 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-03-13 08:53:29 +0000
commit66dce6003f8f1e45eb23c6e2cc273ba07e3065cd (patch)
treef5d4fc2402c65edf853b1ab7e30e89beaedb8995 /java/src/com/android/inputmethod/event/HardwareKeyboardEventDecoder.java
parent13b446b8fb37cb7dfbc79eafa8705796b47d6dcb (diff)
parent92db209c60f82dee19e2c684ef58093817bf8bba (diff)
downloadlatinime-66dce6003f8f1e45eb23c6e2cc273ba07e3065cd.tar.gz
latinime-66dce6003f8f1e45eb23c6e2cc273ba07e3065cd.tar.xz
latinime-66dce6003f8f1e45eb23c6e2cc273ba07e3065cd.zip
Merge "[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.java22
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();
}