summaryrefslogtreecommitdiffstats
path: root/ScreenManager.c
diff options
context:
space:
mode:
authorMichael Klein <michael.klein@puffin.lb.shuttle.de>2016-01-11 22:36:39 +0100
committerMichael Klein <michael.klein@puffin.lb.shuttle.de>2016-01-12 21:15:04 +0100
commit99b947058ff8455f57c49382f8d1b7353458e08b (patch)
tree62e757908e319ab910e74d6dffdf363cea0b6bde /ScreenManager.c
parent466d4da0c6e7255a38b8de3c3b9dc0373805cc41 (diff)
vi keys: translate ALT-h/j/k/l to arrow keys
Diffstat (limited to 'ScreenManager.c')
-rw-r--r--ScreenManager.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/ScreenManager.c b/ScreenManager.c
index df7431fd..1a9d9f03 100644
--- a/ScreenManager.c
+++ b/ScreenManager.c
@@ -244,6 +244,29 @@ void ScreenManager_run(ScreenManager* this, Panel** lastFocus, int* lastKey) {
redraw = false;
continue;
}
+ else if (ch == 27) {
+ int ch2 = getch();
+ if (ch2 != ERR) {
+ switch(ch2)
+ {
+ case 'h':
+ ch = KEY_LEFT;
+ break;
+ case 'j':
+ ch = KEY_DOWN;
+ break;
+ case 'k':
+ ch = KEY_UP;
+ break;
+ case 'l':
+ ch = KEY_RIGHT;
+ break;
+ default:
+ ungetch(ch2);
+ break;
+ }
+ }
+ }
redraw = true;
if (Panel_eventHandlerFn(panelFocus)) {
result = Panel_eventHandler(panelFocus, ch);

© 2014-2024 Faster IT GmbH | imprint | privacy policy