From ac0bcb4420981d0e6ef862a1cc4d457b539d89ec Mon Sep 17 00:00:00 2001 From: Thomas Frans Date: Sat, 3 Jun 2023 15:48:27 +0200 Subject: [PATCH] fix: prevent tab switching from command line --- src/ui/layout.rs | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/ui/layout.rs b/src/ui/layout.rs index 3b10c44..8224c6f 100644 --- a/src/ui/layout.rs +++ b/src/ui/layout.rs @@ -249,6 +249,22 @@ impl Layout { None } } + + /// Propagate the given event to the command line. + fn command_line_handle_event(&mut self, event: Event) -> EventResult { + let is_left_right_event = matches!(event, Event::Key(Key::Left) | Event::Key(Key::Right)); + let result = self.cmdline.on_event(event); + + if self.cmdline.get_content().is_empty() { + self.clear_cmdline(); + } + + if is_left_right_event { + EventResult::Consumed(None) + } else { + result + } + } } impl View for Layout { @@ -362,11 +378,7 @@ impl View for Layout { } Event::Key(Key::Esc) if self.cmdline_focus => self.clear_cmdline(), _ if self.cmdline_focus => { - let result = self.cmdline.on_event(event); - if self.cmdline.get_content().is_empty() { - self.clear_cmdline(); - } - return result; + return self.command_line_handle_event(event); } Event::Mouse { position,