diff options
author | Jack Palevich <jackpal@google.com> | 2012-10-13 21:24:37 -0700 |
---|---|---|
committer | Jack Palevich <jackpal@google.com> | 2012-10-13 21:24:37 -0700 |
commit | c50befaffc101defd5bc067c3e8f622a8f31c4b2 (patch) | |
tree | e8dc737e49bd21ae1395e4396170dab8aab50d62 | |
parent | 2ab12f37250ea293432b52c3450fccf6eab87574 (diff) | |
download | AndroidTerm-c50befaffc101defd5bc067c3e8f622a8f31c4b2.tar.gz |
Put in Transformer TF101 handling for Alt and Meta.
Re-routing Alt and Meta seems to be required on this device, but not
on other devices (such as Nexus 7 using USB OTG.)
We should refine this test as we find out which devices need this
special handling.
-rw-r--r-- | libraries/emulatorview/src/jackpal/androidterm/emulatorview/EmulatorView.java | 39 |
1 files changed, 26 insertions, 13 deletions
diff --git a/libraries/emulatorview/src/jackpal/androidterm/emulatorview/EmulatorView.java b/libraries/emulatorview/src/jackpal/androidterm/emulatorview/EmulatorView.java index eb8003e..94b9c92 100644 --- a/libraries/emulatorview/src/jackpal/androidterm/emulatorview/EmulatorView.java +++ b/libraries/emulatorview/src/jackpal/androidterm/emulatorview/EmulatorView.java @@ -21,6 +21,7 @@ import java.io.IOException; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; +import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.text.ClipboardManager; @@ -172,6 +173,16 @@ public class EmulatorView extends View implements GestureDetector.OnGestureListe private boolean mIsActive = false; + /** + * Routing alt and meta keyCodes away from the IME allows Alt key processing to work on + * the Asus Transformer TF101. + * It doesn't seem to harm anything else, but it also doesn't seem to be + * required on other platforms. + * + * This test should be refined as we learn more. + */ + private final static boolean sTrapAltAndMeta = Build.MODEL.contains("Transformer TF101"); + private Runnable mBlinkCursor = new Runnable() { public void run() { if (mCursorBlink != 0) { @@ -1014,22 +1025,24 @@ public class EmulatorView extends View implements GestureDetector.OnGestureListe return true; } + @Override 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); + if (sTrapAltAndMeta) { + 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 (event.getAction() == KeyEvent.ACTION_DOWN) { + return onKeyDown(keyCode, event); + } else { + return onKeyUp(keyCode, event); + } } - } else { - return super.onKeyPreIme(keyCode, event); } + + return super.onKeyPreIme(keyCode, event); }; private boolean handleControlKey(int keyCode, boolean down) { |