aboutsummaryrefslogtreecommitdiff
path: root/src/app/input/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/app/input/mod.rs')
-rw-r--r--src/app/input/mod.rs13
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) {