diff options
author | Jack Palevich <jackpal@google.com> | 2012-10-14 09:57:22 -0700 |
---|---|---|
committer | Jack Palevich <jackpal@google.com> | 2012-10-14 09:57:22 -0700 |
commit | e4bde3d1537e3c6b80afc74c98a7fd45fa921aa9 (patch) | |
tree | 880bbd3a313b368c84dddae1463ae0a24adcb8b1 | |
parent | ad59c85e76b9c2aa6f0d88b132ec017130a815ba (diff) | |
download | AndroidTerm-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.
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> |