aboutsummaryrefslogtreecommitdiff
path: root/vis.c
diff options
context:
space:
mode:
Diffstat (limited to 'vis.c')
-rw-r--r--vis.c29
1 files changed, 1 insertions, 28 deletions
diff --git a/vis.c b/vis.c
index ee6612b..f4f712a 100644
--- a/vis.c
+++ b/vis.c
@@ -2268,36 +2268,9 @@ static void keypress(Key *key) {
}
static Key getkey(void) {
- Key key = { .str = "", .code = 0 };
- int keycode = getch(), cur = 0;
- if (keycode == ERR)
- return key;
-
- if (keycode >= KEY_MIN) {
- key.code = keycode;
- } else {
- key.str[cur++] = keycode;
- int len = 1;
- unsigned char keychar = keycode;
- if (ISASCII(keychar)) len = 1;
- else if (keychar == 0x1B || keychar >= 0xFC) len = 6;
- else if (keychar >= 0xF8) len = 5;
- else if (keychar >= 0xF0) len = 4;
- else if (keychar >= 0xE0) len = 3;
- else if (keychar >= 0xC0) len = 2;
- len = MIN(len, LENGTH(key.str));
-
- if (cur < len) {
- nodelay(stdscr, TRUE);
- for (int t; cur < len && (t = getch()) != ERR; cur++)
- key.str[cur] = t;
- nodelay(stdscr, FALSE);
- }
- }
-
+ Key key = vis->ui->getkey(vis->ui);
if (config->keypress && !config->keypress(&key))
return (Key){ .str = "", .code = 0 };
-
return key;
}