From a091855ea3ee0c6d39fff8b5803820c31c43fef3 Mon Sep 17 00:00:00 2001 From: Joscha Date: Tue, 30 Aug 2022 03:05:37 +0200 Subject: [PATCH] Fix links key binding masking editor key bindings --- src/ui/euph/room.rs | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/src/ui/euph/room.rs b/src/ui/euph/room.rs index 3395205..7db984d 100644 --- a/src/ui/euph/room.rs +++ b/src/ui/euph/room.rs @@ -331,15 +331,6 @@ impl EuphRoom { crossterm_lock: &Arc>, event: &InputEvent, ) -> bool { - if let key!('I') = event { - if let Some(id) = self.chat.cursor().await { - if let Some(msg) = self.vault.msg(&id).await { - self.state = State::Links(LinksState::new(&msg.content)); - } - } - return true; - } - if let Some(room) = &self.room { let status = room.status().await; let can_compose = matches!(status, Ok(Some(Status::Joined(_)))); @@ -362,6 +353,15 @@ impl EuphRoom { } } + if let key!('I') = event { + if let Some(id) = self.chat.cursor().await { + if let Some(msg) = self.vault.msg(&id).await { + self.state = State::Links(LinksState::new(&msg.content)); + } + } + return true; + } + match status.ok().flatten() { Some(Status::Joining(Joining { bounce: Some(_), .. @@ -389,10 +389,25 @@ impl EuphRoom { _ => false, } } else { - self.chat + if self + .chat .handle_input_event(terminal, crossterm_lock, event, false) .await .handled() + { + return true; + } + + if let key!('I') = event { + if let Some(id) = self.chat.cursor().await { + if let Some(msg) = self.vault.msg(&id).await { + self.state = State::Links(LinksState::new(&msg.content)); + } + } + return true; + } + + false } }