aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--AndroidManifest.xml2
-rw-r--r--src/org/connectbot/service/TerminalBridge.java19
2 files changed, 14 insertions, 7 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 5cc5503..f1e353e 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -2,7 +2,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.connectbot"
android:versionName="1.6-dev"
- android:versionCode="188">
+ android:versionCode="189">
<application
android:icon="@drawable/icon"
diff --git a/src/org/connectbot/service/TerminalBridge.java b/src/org/connectbot/service/TerminalBridge.java
index a2d6e94..1d69989 100644
--- a/src/org/connectbot/service/TerminalBridge.java
+++ b/src/org/connectbot/service/TerminalBridge.java
@@ -122,7 +122,7 @@ public class TerminalBridge implements VDUDisplay, OnKeyListener {
private String keymode = null;
- private boolean hardwareKeyboard = false;
+ private boolean hardKeyboard = false;
private boolean selectingForCopy = false;
private final SelectionArea selectionArea;
@@ -268,7 +268,7 @@ public class TerminalBridge implements VDUDisplay, OnKeyListener {
selectionArea = new SelectionArea();
- hardwareKeyboard = (manager.res.getConfiguration().keyboard
+ hardKeyboard = (manager.res.getConfiguration().keyboard
== Configuration.KEYBOARD_QWERTY);
}
@@ -487,8 +487,13 @@ public class TerminalBridge implements VDUDisplay, OnKeyListener {
public boolean onKey(View v, int keyCode, KeyEvent event) {
try {
+ boolean hardKeyboardHidden =
+ manager.res.getConfiguration().hardKeyboardHidden ==
+ Configuration.HARDKEYBOARDHIDDEN_YES;
+
// Ignore all key-up events except for the special keys
- if (event.getAction() == KeyEvent.ACTION_UP) {
+ if (event.getAction() == KeyEvent.ACTION_UP &&
+ hardKeyboard && !hardKeyboardHidden) {
// skip keys if we aren't connected yet or have been disconnected
if (disconnected || transport == null)
return false;
@@ -568,7 +573,8 @@ public class TerminalBridge implements VDUDisplay, OnKeyListener {
metaState &= ~META_CTRL_ON;
redraw();
- if (!hardwareKeyboard && sendFunctionKey(keyCode))
+ if ((!hardKeyboard || (hardKeyboard && hardKeyboardHidden))
+ && sendFunctionKey(keyCode))
return true;
// Support CTRL-a through CTRL-z
@@ -584,7 +590,7 @@ public class TerminalBridge implements VDUDisplay, OnKeyListener {
}
// handle pressing f-keys
- if (hardwareKeyboard
+ if ((hardKeyboard && !hardKeyboardHidden)
&& (curMetaState & KeyEvent.META_SHIFT_ON) != 0
&& sendFunctionKey(keyCode))
return true;
@@ -607,7 +613,8 @@ public class TerminalBridge implements VDUDisplay, OnKeyListener {
}
// try handling keymode shortcuts
- if (event.getRepeatCount() == 0) {
+ if (hardKeyboard && !hardKeyboardHidden &&
+ event.getRepeatCount() == 0) {
if (PreferenceConstants.KEYMODE_RIGHT.equals(keymode)) {
switch (keyCode) {
case KeyEvent.KEYCODE_ALT_RIGHT: