From 0af8d507e13aaea8ffb53a81e5b6812c0cfdb615 Mon Sep 17 00:00:00 2001 From: FIGBERT Date: Sat, 18 Mar 2023 00:30:23 -0700 Subject: [PATCH] Forward roster key events to room when focused --- ui/view-roster.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/ui/view-roster.go b/ui/view-roster.go index 23e66f6..d41cff0 100644 --- a/ui/view-roster.go +++ b/ui/view-roster.go @@ -192,6 +192,18 @@ func (rstr *RosterView) OnKeyEvent(event mauview.KeyEvent) bool { Ch: event.Rune(), Mod: event.Modifiers(), } + + if rstr.focused { + if rstr.parent.config.Keybindings.Roster[kb] == "clear" { + rstr.focused = false + rstr.selected = nil + } else { + if roomView, ok := rstr.parent.getRoomView(rstr.selected.ID, true); ok { + return roomView.OnKeyEvent(event) + } + } + } + switch rstr.parent.config.Keybindings.Roster[kb] { case "next_room": if index := rstr.index(rstr.selected); index == -1 || index == len(rstr.rooms)-1 { @@ -206,7 +218,6 @@ func (rstr *RosterView) OnKeyEvent(event mauview.KeyEvent) bool { rstr.selected = rstr.rooms[index-1] } case "clear": - rstr.focused = false rstr.selected = nil case "quit": rstr.parent.gmx.Stop(true)