--- a/src/org/connectbot/service/TerminalKeyListener.java
+++ b/src/org/connectbot/service/TerminalKeyListener.java
@@ -70,7 +70,6 @@ public class TerminalKeyListener implements OnKeyListener, OnSharedPreferenceCha
private final VDUBuffer buffer;
private String keymode = null;
- private boolean hardKeyboard = false;
private int metaState = 0;
@@ -100,9 +99,6 @@ public class TerminalKeyListener implements OnKeyListener, OnSharedPreferenceCha
prefs = PreferenceManager.getDefaultSharedPreferences(manager);
prefs.registerOnSharedPreferenceChangeListener(this);
- hardKeyboard = (manager.res.getConfiguration().keyboard
- == Configuration.KEYBOARD_QWERTY);
-
updateKeymode();
}
@@ -112,13 +108,12 @@ public class TerminalKeyListener implements OnKeyListener, OnSharedPreferenceCha
*/
public boolean onKey(View v, int keyCode, KeyEvent event) {
try {
- final boolean hardKeyboardHidden = manager.hardKeyboardHidden;
-
// Ignore all key-up events except for the special keys
if (event.getAction() == KeyEvent.ACTION_UP) {
// There's nothing here for virtual keyboard users.
- if (!hardKeyboard || (hardKeyboard && hardKeyboardHidden))
- return false;
+ if(event.FLAG_SOFT_KEYBOARD != 0) {
+ return false;
+ }
// skip keys if we aren't connected yet or have been disconnected
if (bridge.isDisconnected() || bridge.transport == null)
@@ -189,7 +184,7 @@ public class TerminalKeyListener implements OnKeyListener, OnSharedPreferenceCha
int uchar = event.getUnicodeChar(curMetaState);
// no hard keyboard? ALT-k should pass through to below
if ((orgMetaState & KeyEvent.META_ALT_ON) != 0 &&
- (!hardKeyboard || hardKeyboardHidden)) {
+ event.FLAG_SOFT_KEYBOARD != 0) {
uchar = 0;
}
@@ -216,23 +211,24 @@ public class TerminalKeyListener implements OnKeyListener, OnSharedPreferenceCha
}
if ((metaState & META_CTRL_MASK) != 0) {
+
metaState &= ~META_CTRL_ON;
bridge.redraw();