diff options
author | Nathan Scott <nathans@redhat.com> | 2020-08-20 14:57:30 +1000 |
---|---|---|
committer | Nathan Scott <nathans@redhat.com> | 2020-08-20 14:57:30 +1000 |
commit | 5c5a599a2a4394237e9643f23cd82f9b58492c6d (patch) | |
tree | 39790e897d57ca9b9ca72d9baa92e2aa172955e1 /ScreenManager.c | |
parent | e25ac8557d93f3255297b4cd019bba050c3ee217 (diff) | |
parent | 9ed47a213bee9fe272e1cf16f4d45730e6b37331 (diff) |
Merge branch 'hishamhm-pull-959'
Diffstat (limited to 'ScreenManager.c')
-rw-r--r-- | ScreenManager.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/ScreenManager.c b/ScreenManager.c index db117b65..8e5f697f 100644 --- a/ScreenManager.c +++ b/ScreenManager.c @@ -190,6 +190,22 @@ void ScreenManager_run(ScreenManager* this, Panel** lastFocus, int* lastKey) { set_escdelay(25); ch = getch(); + if (this->settings->vimMode) { + switch (ch) { + case 'h': ch = KEY_LEFT; break; + case 'j': ch = KEY_DOWN; break; + case 'k': ch = KEY_UP; break; + case 'l': ch = KEY_RIGHT; break; + case KEY_LEFT: ch = 'h'; break; + case KEY_DOWN: ch = 'j'; break; + case KEY_UP: ch = 'k'; break; + case KEY_RIGHT: ch = 'l'; break; + case 'K': ch = 'k'; break; + case 'J': ch = 'K'; break; + case 'L': ch = 'l'; break; + } + } + HandlerResult result = IGNORED; if (ch == KEY_MOUSE && this->settings->enableMouse) { ch = ERR; |