diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-07-23 03:47:34 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-07-23 03:47:44 +0300 |
| commit | e7fc85bfdb51f89488430adbfe5bbced3be79c2f (patch) | |
| tree | c1c0324f28040c50d0075d6407bdf6ab14d1b8c0 /src/app/input/mod.rs | |
| parent | 2a20e90a026936d0d5b96823d74e2e4fe13a166f (diff) | |
fix: preserve kitty printable key releases
refs #1746
Diffstat (limited to 'src/app/input/mod.rs')
| -rw-r--r-- | src/app/input/mod.rs | 13 |
1 files changed, 8 insertions, 5 deletions
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<super::TerminalInputTarget> { 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) { |
