From e7fc85bfdb51f89488430adbfe5bbced3be79c2f Mon Sep 17 00:00:00 2001 From: Ogulcan Celik Date: Thu, 23 Jul 2026 03:47:34 +0300 Subject: fix: preserve kitty printable key releases refs #1746 --- src/app/input/mod.rs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src/app/input/mod.rs') diff --git a/src/app/input/mod.rs b/src/app/input/mod.rs index 5eee4250..738b7963 100644 --- a/src/app/input/mod.rs +++ b/src/app/input/mod.rs @@ -71,21 +71,23 @@ use super::App; // --------------------------------------------------------------------------- impl App { - pub(super) async fn handle_key(&mut self, key: TerminalKey) { + pub(super) async fn handle_key( + &mut self, + key: TerminalKey, + ) -> Option { if self.state.popup_pane.is_some() { - self.handle_terminal_key(key).await; - return; + return self.handle_terminal_key(key).await; } let key_event = key.as_key_event(); if modal_paste_target_active(&self.state) && is_modal_paste_shortcut(&key_event) { if let Some(text) = crate::platform::read_clipboard_text() { self.paste_into_active_text_input(&text); } - return; + return None; } match self.state.mode { - Mode::Terminal => self.handle_terminal_key(key).await, + Mode::Terminal => return self.handle_terminal_key(key).await, Mode::Prefix => self.handle_prefix_key(key), Mode::Navigate => self.handle_navigate_key(key), Mode::Copy => self.handle_copy_mode_key(key), @@ -114,6 +116,7 @@ impl App { Mode::Terminal => unreachable!(), }, } + None } pub(super) async fn handle_paste(&mut self, text: String) { -- cgit v1.2.3