aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack Palevich <jackpal@google.com>2012-10-14 09:57:22 -0700
committerJack Palevich <jackpal@google.com>2012-10-14 09:57:22 -0700
commite4bde3d1537e3c6b80afc74c98a7fd45fa921aa9 (patch)
tree880bbd3a313b368c84dddae1463ae0a24adcb8b1
parentad59c85e76b9c2aa6f0d88b132ec017130a815ba (diff)
downloadAndroidTerm-e4bde3d1537e3c6b80afc74c98a7fd45fa921aa9.tar.gz
Change Alt-sends-esc behavior to allow phones to use Alt.
Alt-sends-esc is no longer the default. The opposite of alt-sends-esc is to pass through Alt un-altered, which allows phone keyboards to use alt to provide extra characters. There's no longer any way to have Alt set the high bit.
-rw-r--r--libraries/emulatorview/src/jackpal/androidterm/emulatorview/EmulatorView.java3
-rw-r--r--libraries/emulatorview/src/jackpal/androidterm/emulatorview/TermKeyListener.java15
-rw-r--r--res/values/defaults.xml2
-rw-r--r--res/values/strings.xml2
4 files changed, 13 insertions, 9 deletions
diff --git a/libraries/emulatorview/src/jackpal/androidterm/emulatorview/EmulatorView.java b/libraries/emulatorview/src/jackpal/androidterm/emulatorview/EmulatorView.java
index 94b9c92..80353d5 100644
--- a/libraries/emulatorview/src/jackpal/androidterm/emulatorview/EmulatorView.java
+++ b/libraries/emulatorview/src/jackpal/androidterm/emulatorview/EmulatorView.java
@@ -1028,12 +1028,13 @@ public class EmulatorView extends View implements GestureDetector.OnGestureListe
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
if (sTrapAltAndMeta) {
+ 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 (altOn || altPressed || altActive || metaOn) {
+ if (altEsc && (altOn || altPressed || altActive || metaOn)) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
return onKeyDown(keyCode, event);
} else {
diff --git a/libraries/emulatorview/src/jackpal/androidterm/emulatorview/TermKeyListener.java b/libraries/emulatorview/src/jackpal/androidterm/emulatorview/TermKeyListener.java
index 506cc36..9d6ed1e 100644
--- a/libraries/emulatorview/src/jackpal/androidterm/emulatorview/TermKeyListener.java
+++ b/libraries/emulatorview/src/jackpal/androidterm/emulatorview/TermKeyListener.java
@@ -13,6 +13,8 @@ import android.view.KeyEvent;
* the current state of the alt, shift, and control keys.
*/
class TermKeyListener {
+ /** Disabled for now because it interferes with ALT processing on phones with physical keyboards. */
+ private boolean SUPPORT_8_BIT_META = false;
/**
* Android key codes that are defined in the Android 2.3 API.
* We want to recognize these codes, because they will be sent to our
@@ -843,25 +845,26 @@ class TermKeyListener {
if (mAltSendsEsc) {
mTermSession.write(new byte[]{0x1b},0,1);
effectiveMetaState &= ~KeyEvent.META_ALT_MASK;
- } else {
- // Legacy behavior: Pass Alt through to allow composing characters.
- // effectiveMetaState |= KeyEvent.META_ALT_ON;
+ } else if (SUPPORT_8_BIT_META) {
setHighBit = true;
effectiveMetaState &= ~KeyEvent.META_ALT_MASK;
+ } else {
+ // Legacy behavior: Pass Alt through to allow composing characters.
}
}
// Note: The Hacker keyboard IME key labeled Alt actually sends Meta.
- // Either send an ESC, or set the high bit of the character.
if ((metaState & KeyEvent.META_META_ON) != 0) {
if (mAltSendsEsc) {
mTermSession.write(new byte[]{0x1b},0,1);
effectiveMetaState &= ~KeyEvent.META_META_MASK;
} else {
- setHighBit = true;
- effectiveMetaState &= ~KeyEvent.META_META_MASK;
+ if (SUPPORT_8_BIT_META) {
+ setHighBit = true;
+ effectiveMetaState &= ~KeyEvent.META_META_MASK;
+ }
}
}
result = event.getUnicodeChar(effectiveMetaState);
diff --git a/res/values/defaults.xml b/res/values/defaults.xml
index 1ccc579..67287b2 100644
--- a/res/values/defaults.xml
+++ b/res/values/defaults.xml
@@ -12,7 +12,7 @@
<string name="pref_controlkey_default">5</string>
<string name="pref_fnkey_default">4</string>
<string name="pref_ime_default">0</string>
- <bool name="pref_alt_sends_esc_default">true</bool>
+ <bool name="pref_alt_sends_esc_default">false</bool>
<string name="pref_shell_default">/system/bin/sh -</string>
<string name="pref_initialcommand_default"></string>
<string name="pref_termtype_default">screen</string>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 8d3022d..f1464e9 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -147,6 +147,6 @@
<string name="alt_sends_esc">Alt key sends ESC</string>
<string name="alt_sends_esc_summary_on">Alt key sends ESC.</string>
- <string name="alt_sends_esc_summary_off">Alt key sets high bit.</string>
+ <string name="alt_sends_esc_summary_off">Alt key does not send ESC.</string>
</resources>