diff options
author | Dianne Hackborn <hackbod@google.com> | 2009-06-29 12:00:39 -0700 |
---|---|---|
committer | Dianne Hackborn <hackbod@google.com> | 2009-06-29 12:00:39 -0700 |
commit | 86d56cca9ce23b0f4814418d7c71ec11ea9fd278 (patch) | |
tree | 243efa786bd7e18843e619d0348edc81168666b4 /core | |
parent | bd9aa793b19f7aa529ca4123492f8940b96486b8 (diff) | |
download | frameworks_base-86d56cca9ce23b0f4814418d7c71ec11ea9fd278.zip frameworks_base-86d56cca9ce23b0f4814418d7c71ec11ea9fd278.tar.gz frameworks_base-86d56cca9ce23b0f4814418d7c71ec11ea9fd278.tar.bz2 |
Generate key events for actions sent to generic input connections.
There is a compatibility issue with the cupcake IME where the generic
input connection would just consume actions. Late in cupcake this
stuff was reworked so that the IME would send an action command
to the app instead of an enter key event, and the compatibility code
got lost.
Diffstat (limited to 'core')
-rw-r--r-- | core/java/android/view/inputmethod/BaseInputConnection.java | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/core/java/android/view/inputmethod/BaseInputConnection.java b/core/java/android/view/inputmethod/BaseInputConnection.java index 9a0f467..7393737 100644 --- a/core/java/android/view/inputmethod/BaseInputConnection.java +++ b/core/java/android/view/inputmethod/BaseInputConnection.java @@ -340,10 +340,19 @@ public class BaseInputConnection implements InputConnection { } /** - * The default implementation does nothing. + * The default implementation turns this into the enter key. */ public boolean performEditorAction(int actionCode) { - return false; + long eventTime = SystemClock.uptimeMillis(); + sendKeyEvent(new KeyEvent(eventTime, eventTime, + KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ENTER, 0, 0, 0, 0, + KeyEvent.FLAG_SOFT_KEYBOARD | KeyEvent.FLAG_KEEP_TOUCH_MODE + | KeyEvent.FLAG_EDITOR_ACTION)); + sendKeyEvent(new KeyEvent(SystemClock.uptimeMillis(), eventTime, + KeyEvent.ACTION_UP, KeyEvent.KEYCODE_ENTER, 0, 0, 0, 0, + KeyEvent.FLAG_SOFT_KEYBOARD | KeyEvent.FLAG_KEEP_TOUCH_MODE + | KeyEvent.FLAG_EDITOR_ACTION)); + return true; } /** |