diff options
author | Kenny Root <kenny@the-b.org> | 2008-10-23 17:43:12 +0000 |
---|---|---|
committer | Kenny Root <kenny@the-b.org> | 2008-10-23 17:43:12 +0000 |
commit | baf980febae0378c65a2ff8151fb5a6d8918861b (patch) | |
tree | d681d08aed2b744ec59f4ffbd0dc1cf6dc230438 /src | |
parent | 0685384d0528e9186561d02f9193d658adeb3d45 (diff) | |
download | connectbot-baf980febae0378c65a2ff8151fb5a6d8918861b.tar.gz connectbot-baf980febae0378c65a2ff8151fb5a6d8918861b.tar.bz2 connectbot-baf980febae0378c65a2ff8151fb5a6d8918861b.zip |
Add back in regressed CTRL and ESC sending by using center DPAD.
Diffstat (limited to 'src')
-rw-r--r-- | src/org/connectbot/service/TerminalBridge.java | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/org/connectbot/service/TerminalBridge.java b/src/org/connectbot/service/TerminalBridge.java index 13b2870..733300c 100644 --- a/src/org/connectbot/service/TerminalBridge.java +++ b/src/org/connectbot/service/TerminalBridge.java @@ -60,6 +60,8 @@ public class TerminalBridge implements VDUDisplay, OnKeyListener { public Canvas canvas = new Canvas(); public VDUBuffer buffer = null; + private boolean ctrlPressed = false; + public class HostKeyVerifier implements ServerHostKeyVerifier { @@ -289,6 +291,14 @@ public class TerminalBridge implements VDUDisplay, OnKeyListener { // print normal keys if (printing) { int key = keymap.get(keyCode, event.getMetaState()); + if (ctrlPressed) { + // Support CTRL-A through CTRL-Z + if (key >= 0x61 && key <= 0x79) + key -= 0x60; + else if (key >= 0x40 && key <= 0x59) + key -= 0x39; + ctrlPressed = false; + } this.stdin.write(key); return true; } @@ -301,6 +311,14 @@ public class TerminalBridge implements VDUDisplay, OnKeyListener { case KeyEvent.KEYCODE_DPAD_UP: ((vt320)buffer).keyPressed(vt320.KEY_UP, ' ', event.getMetaState()); return true; case KeyEvent.KEYCODE_DPAD_DOWN: ((vt320)buffer).keyPressed(vt320.KEY_DOWN, ' ', event.getMetaState()); return true; case KeyEvent.KEYCODE_DPAD_RIGHT: ((vt320)buffer).keyPressed(vt320.KEY_RIGHT, ' ', event.getMetaState()); return true; + case KeyEvent.KEYCODE_DPAD_CENTER: + // TODO: Add some visual indication of Ctrl state + if (ctrlPressed) { + stdin.write(0x1B); // ESC + ctrlPressed = false; + } else + ctrlPressed = true; + return true; } } |