diff options
author | Robert Ewald <robewald@gmx.net> | 2012-10-09 21:14:41 +0200 |
---|---|---|
committer | Jack Palevich <jackpal@google.com> | 2012-10-13 19:47:35 -0700 |
commit | 2ab12f37250ea293432b52c3450fccf6eab87574 (patch) | |
tree | 59dac094928710cb8bce5b5184ffe0fea5555c0e | |
parent | ea895bc92222e7a180ea38a0442aef0f368fe7f9 (diff) | |
download | AndroidTerm-2ab12f37250ea293432b52c3450fccf6eab87574.tar.gz |
Handle alt-sends-ESC in IME too.
This patch handles the alt sends ESC in IME mode by routing the key event
through the onKeyDown() and onKeyUp() methods if Alt pressed and
the alt-sends-ESC mode is enabled.
-rw-r--r-- | libraries/emulatorview/src/jackpal/androidterm/emulatorview/EmulatorView.java | 17 | ||||
-rw-r--r-- | libraries/emulatorview/src/jackpal/androidterm/emulatorview/TermKeyListener.java | 8 |
2 files changed, 25 insertions, 0 deletions
diff --git a/libraries/emulatorview/src/jackpal/androidterm/emulatorview/EmulatorView.java b/libraries/emulatorview/src/jackpal/androidterm/emulatorview/EmulatorView.java index 3005b62..eb8003e 100644 --- a/libraries/emulatorview/src/jackpal/androidterm/emulatorview/EmulatorView.java +++ b/libraries/emulatorview/src/jackpal/androidterm/emulatorview/EmulatorView.java @@ -1014,6 +1014,23 @@ public class EmulatorView extends View implements GestureDetector.OnGestureListe return true; } + public boolean onKeyPreIme(int keyCode, KeyEvent event) { + boolean altEsc = mKeyListener.getAltSendsEsc(); + boolean altOn = (event.getMetaState() & KeyEvent.META_ALT_ON) != 0; + boolean metaOn = (event.getMetaState() & KeyEvent.META_META_ON) != 0; + boolean altPressed = (keyCode == KeyEvent.KEYCODE_ALT_LEFT) + || (keyCode == KeyEvent.KEYCODE_ALT_RIGHT); + boolean altActive = mKeyListener.isAltActive(); + if (altEsc && (altOn || altPressed || altActive || metaOn)) { + if (event.getAction() == KeyEvent.ACTION_DOWN) { + return onKeyDown(keyCode, event); + } else { + return onKeyUp(keyCode, event); + } + } else { + return super.onKeyPreIme(keyCode, event); + } + }; private boolean handleControlKey(int keyCode, boolean down) { if (keyCode == mControlKeyCode) { diff --git a/libraries/emulatorview/src/jackpal/androidterm/emulatorview/TermKeyListener.java b/libraries/emulatorview/src/jackpal/androidterm/emulatorview/TermKeyListener.java index 304d97f..506cc36 100644 --- a/libraries/emulatorview/src/jackpal/androidterm/emulatorview/TermKeyListener.java +++ b/libraries/emulatorview/src/jackpal/androidterm/emulatorview/TermKeyListener.java @@ -942,4 +942,12 @@ class TermKeyListener { break; } } + + public boolean getAltSendsEsc() { + return mAltSendsEsc; + } + + public boolean isAltActive() { + return mAltKey.isActive(); + } } |