1
0
mirror of https://github.com/mpv-player/mpv synced 2025-02-05 14:42:24 +00:00

getch2: Support ESC keypresses again

Due to the termcap matching and the hardcoded fallbacks, the ESC keypress
has to be followed by another non-matching keypress (such as another ESC)
for it to be accepted. We drop the second ESC in case it was typed twice.
This commit is contained in:
Diogo Franco (Kovensky) 2013-07-25 21:08:39 -03:00
parent 590f011df1
commit fb67770ed6

View File

@ -386,7 +386,15 @@ bool getch2(struct input_ctx *input_ctx)
if (utf8_len > 1) {
state = STATE_UTF8;
} else if (utf8_len == 1) {
mp_input_put_key(input_ctx, c);
switch (c) {
case 0x1b: /* ESC that's not part of escape sequence */
mp_input_put_key(input_ctx, MP_KEY_ESC);
if (getch2_len > 1 && getch2_buf[1] == 0x1b)
walk_buf(1) /* eat the second ESC if it was typed twice */
break;
default:
mp_input_put_key(input_ctx, c);
}
walk_buf(1);
} else
walk_buf(getch2_pos);