Fix Escape key handling for Kitty keyboard protocol

Add isEscape() helper that handles both raw (\x1b) and Kitty protocol
(\x1b[27u) Escape sequences. Update all components that check for
Escape key to use the new helper.
This commit is contained in:
Mario Zechner 2025-12-19 02:09:51 +01:00
parent 314ef34ebc
commit f8b6164ecd
11 changed files with 38 additions and 18 deletions

View file

@ -1,4 +1,4 @@
import { isCtrlC } from "../keys.js";
import { isCtrlC, isEscape } from "../keys.js";
import type { Component } from "../tui.js";
import { truncateToWidth } from "../utils.js";
@ -163,7 +163,7 @@ export class SelectList implements Component {
}
}
// Escape or Ctrl+C
else if (keyData === "\x1b" || isCtrlC(keyData)) {
else if (isEscape(keyData) || isCtrlC(keyData)) {
if (this.onCancel) {
this.onCancel();
}