diff options
| author | Can Celik <ogulcancelik@gmail.com> | 2026-08-19 04:43:28 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-08-19 04:43:28 +0300 |
| commit | a5c69beabfc82d9c3f9563eb821139b2e0f3e14f (patch) | |
| tree | 9b7049e4629913dcab40d985df399acee262b67b /vendor/patches | |
| parent | 3667151744e379ac5c8f76d57203b675de8a6ebc (diff) | |
fix(perf): eliminate redundant terminal wake work (#2962)
* fix(perf): eliminate redundant terminal wake work
* fix(perf): harden release benchmark gate
* test(perf): strengthen performance guardrails
Diffstat (limited to 'vendor/patches')
| -rw-r--r-- | vendor/patches/libghostty-vt/0002-expose-modify-other-keys-mode.patch | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/vendor/patches/libghostty-vt/0002-expose-modify-other-keys-mode.patch b/vendor/patches/libghostty-vt/0002-expose-modify-other-keys-mode.patch new file mode 100644 index 00000000..5d8540db --- /dev/null +++ b/vendor/patches/libghostty-vt/0002-expose-modify-other-keys-mode.patch @@ -0,0 +1,69 @@ +diff --git a/vendor/libghostty-vt/include/ghostty/vt/terminal.h b/vendor/libghostty-vt/include/ghostty/vt/terminal.h +index 26ee0c0b..9bb961d3 100644 +--- a/vendor/libghostty-vt/include/ghostty/vt/terminal.h ++++ b/vendor/libghostty-vt/include/ghostty/vt/terminal.h +@@ -1199,2 +1199,9 @@ typedef enum GHOSTTY_ENUM_TYPED { + GHOSTTY_TERMINAL_DATA_VIEWPORT_ACTIVE = 32, ++ ++ /** ++ * Whether xterm modifyOtherKeys mode 2 is enabled. ++ * ++ * Output type: bool * ++ */ ++ GHOSTTY_TERMINAL_DATA_MODIFY_OTHER_KEYS = 33, + GHOSTTY_TERMINAL_DATA_MAX_VALUE = GHOSTTY_ENUM_MAX_VALUE, +diff --git a/vendor/libghostty-vt/src/terminal/c/terminal.zig b/vendor/libghostty-vt/src/terminal/c/terminal.zig +index a896c0fd..0f95fcf1 100644 +--- a/vendor/libghostty-vt/src/terminal/c/terminal.zig ++++ b/vendor/libghostty-vt/src/terminal/c/terminal.zig +@@ -759,3 +759,4 @@ pub const TerminalData = enum(c_int) { + viewport_active = 32, ++ modify_other_keys = 33, +- ++ + /// Output type expected for querying the data of the given kind. +@@ -765,3 +766,8 @@ pub const TerminalData = enum(c_int) { + .cols, .rows, .cursor_x, .cursor_y => size.CellCountInt, +- .cursor_pending_wrap, .cursor_visible, .mouse_tracking, .viewport_active => bool, ++ .cursor_pending_wrap, ++ .cursor_visible, ++ .mouse_tracking, ++ .viewport_active, ++ .modify_other_keys, ++ => bool, + .active_screen => TerminalScreen, +@@ -901,2 +907,3 @@ fn getTyped( + .viewport_active => out.* = t.screens.active.pages.viewport == .active, ++ .modify_other_keys => out.* = t.flags.modify_other_keys_2, + } +@@ -1655,3 +1662,29 @@ test "get kitty_keyboard_flags" { + } +- ++ ++test "get modify_other_keys" { ++ var t: Terminal = null; ++ try testing.expectEqual(Result.success, new( ++ &lib.alloc.test_allocator, ++ &t, ++ .{ ++ .cols = 80, ++ .rows = 24, ++ .max_scrollback = 0, ++ }, ++ )); ++ defer free(t); ++ ++ var enabled: bool = undefined; ++ try testing.expectEqual(Result.success, get(t, .modify_other_keys, @ptrCast(&enabled))); ++ try testing.expect(!enabled); ++ ++ vt_write(t, "\x1b[>4;2m", 7); ++ try testing.expectEqual(Result.success, get(t, .modify_other_keys, @ptrCast(&enabled))); ++ try testing.expect(enabled); ++ ++ vt_write(t, "\x1b[>4;0m", 7); ++ try testing.expectEqual(Result.success, get(t, .modify_other_keys, @ptrCast(&enabled))); ++ try testing.expect(!enabled); ++} ++ + test "get mouse_tracking" { |
