aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Ewald <robewald@gmx.net>2012-10-09 21:14:41 +0200
committerJack Palevich <jackpal@google.com>2012-10-13 19:47:35 -0700
commit2ab12f37250ea293432b52c3450fccf6eab87574 (patch)
tree59dac094928710cb8bce5b5184ffe0fea5555c0e
parentea895bc92222e7a180ea38a0442aef0f368fe7f9 (diff)
downloadAndroidTerm-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.java17
-rw-r--r--libraries/emulatorview/src/jackpal/androidterm/emulatorview/TermKeyListener.java8
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();
+ }
}