aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack Palevich <jackpal@google.com>2012-10-13 21:24:37 -0700
committerJack Palevich <jackpal@google.com>2012-10-13 21:24:37 -0700
commitc50befaffc101defd5bc067c3e8f622a8f31c4b2 (patch)
treee8dc737e49bd21ae1395e4396170dab8aab50d62
parent2ab12f37250ea293432b52c3450fccf6eab87574 (diff)
downloadAndroidTerm-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.java39
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) {