From a5c69beabfc82d9c3f9563eb821139b2e0f3e14f Mon Sep 17 00:00:00 2001 From: Can Celik Date: Wed, 19 Aug 2026 04:43:28 +0300 Subject: 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 --- src/ghostty/mod.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/ghostty/mod.rs') diff --git a/src/ghostty/mod.rs b/src/ghostty/mod.rs index cea7c283..c044d3b0 100644 --- a/src/ghostty/mod.rs +++ b/src/ghostty/mod.rs @@ -1034,6 +1034,10 @@ impl Terminal { self.get_bool(ffi::GhosttyTerminalData_GHOSTTY_TERMINAL_DATA_MOUSE_TRACKING) } + pub fn modify_other_keys_enabled(&self) -> Result { + self.get_bool(ffi::GhosttyTerminalData_GHOSTTY_TERMINAL_DATA_MODIFY_OTHER_KEYS) + } + pub fn active_screen(&self) -> Result { let mut out = ffi::GhosttyTerminalScreen_GHOSTTY_TERMINAL_SCREEN_PRIMARY; unsafe { @@ -3635,6 +3639,17 @@ mod tests { assert_eq!(encoded_mouse, b"\x1b[<0;1;1M"); } + #[test] + fn modify_other_keys_query_tracks_mode_two() { + let mut terminal = Terminal::new(80, 24, 0).unwrap(); + + assert!(!terminal.modify_other_keys_enabled().unwrap()); + terminal.write(b"\x1b[>4;2m"); + assert!(terminal.modify_other_keys_enabled().unwrap()); + terminal.write(b"\x1b[>4;0m"); + assert!(!terminal.modify_other_keys_enabled().unwrap()); + } + #[test] fn terminal_read_text_viewport_unwraps_soft_wrapped_selection() { let mut terminal = Terminal::new(5, 3, 0).unwrap(); -- cgit v1.2.3