Terminal: apply ESC delay; stop treating resize as C-g
set_escdelay is an ncurses function, not a macro, so the #ifdef guard compiled it out and ESC waited the 1 s default. KEY_RESIZE was mapped to Refresh, the C-g cancel handler, which cleared the mark and cancelled open prompts (including swap recovery) on every resize. Audit findings B1, B2. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015rcVQiiWyTzoNrsvLSaAfB
This commit is contained in:
+3
-1
@@ -43,7 +43,9 @@ TerminalFrontend::Init(int &argc, char **argv, Editor &ed)
|
||||
// Enable 8-bit meta key sequences (Alt/ESC-prefix handling in terminals)
|
||||
meta(stdscr, TRUE);
|
||||
// Make ESC key sequences resolve quickly so ESC+<key> works as meta
|
||||
#ifdef set_escdelay
|
||||
// set_escdelay is an ncurses extension function (not a macro), so test for
|
||||
// ncurses itself rather than `#ifdef set_escdelay`, which is always false.
|
||||
#if defined(NCURSES_VERSION)
|
||||
set_escdelay(TerminalFrontend::kEscDelayMs);
|
||||
#endif
|
||||
// Make getch() block briefly instead of busy-looping; reduces CPU when idle
|
||||
|
||||
Reference in New Issue
Block a user