From b4ac04ae4891d74a7cabd6438a1369624255fc13 Mon Sep 17 00:00:00 2001 From: Jean Chalard Date: Wed, 9 Jan 2013 22:08:20 +0900 Subject: [PATCH] Trigger the set action when pressing hardware enter (C2) Bug: 7969231 Change-Id: I581212093df6f16fa9304e0b3e5b46714a7acdb3 --- .../event/HardwareKeyboardEventDecoder.java | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/java/src/com/android/inputmethod/event/HardwareKeyboardEventDecoder.java b/java/src/com/android/inputmethod/event/HardwareKeyboardEventDecoder.java index 2fb7fe8b4..a2463c20c 100644 --- a/java/src/com/android/inputmethod/event/HardwareKeyboardEventDecoder.java +++ b/java/src/com/android/inputmethod/event/HardwareKeyboardEventDecoder.java @@ -55,13 +55,20 @@ public class HardwareKeyboardEventDecoder implements HardwareEventDecoder { // A dead key. return Event.createDeadEvent( codePointAndFlags & KeyCharacterMap.COMBINING_ACCENT_MASK, null /* next */); - } else { - // A committable character. This should be committed right away, taking into - // account the current state. - return Event.createCommittableEvent(codePointAndFlags, null /* next */); } - } else { - return Event.createNotHandledEvent(); + if (KeyEvent.KEYCODE_ENTER == keyCode) { + // The Enter key. If the Shift key is not being pressed, this should send a + // CODE_ACTION_ENTER to trigger the action if any, or a carriage return + // otherwise. If the Shift key is depressed, 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_ACTION_ENTER, + 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 */); } + return Event.createNotHandledEvent(); } }