From 3656acba4824eba5edf9899b8919ff362f324fb4 Mon Sep 17 00:00:00 2001 From: ayn2op Date: Tue, 17 Mar 2026 18:20:00 -0400 Subject: [PATCH] fix(ui/chat): keep mentions layer non-interactive for key routing --- internal/ui/chat/message_input.go | 18 ++++++------------ internal/ui/chat/model.go | 1 + 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/internal/ui/chat/message_input.go b/internal/ui/chat/message_input.go index fdb71c2..d1c48cc 100644 --- a/internal/ui/chat/message_input.go +++ b/internal/ui/chat/message_input.go @@ -104,9 +104,9 @@ func (mi *messageInput) stopTypingTimer() { } func (mi *messageInput) HandleEvent(event tcell.Event) tview.Command { + handler := mi.TextArea.HandleEvent switch event := event.(type) { case *tview.KeyEvent: - handler := mi.TextArea.HandleEvent switch { case keybind.Matches(event, mi.cfg.Keybinds.MessageInput.Paste.Keybind): mi.paste() @@ -171,26 +171,20 @@ func (mi *messageInput) HandleEvent(event tcell.Event) tview.Command { if mi.chat.GetVisible(mentionsListLayerName) { switch { case keybind.Matches(event, mi.cfg.Keybinds.MentionsList.Up.Keybind): - mi.mentionsList.HandleEvent(tcell.NewEventKey(tcell.KeyUp, "", tcell.ModNone)) - return nil + return mi.mentionsList.HandleEvent(tcell.NewEventKey(tcell.KeyUp, "", tcell.ModNone)) case keybind.Matches(event, mi.cfg.Keybinds.MentionsList.Down.Keybind): - mi.mentionsList.HandleEvent(tcell.NewEventKey(tcell.KeyDown, "", tcell.ModNone)) - return nil + return mi.mentionsList.HandleEvent(tcell.NewEventKey(tcell.KeyDown, "", tcell.ModNone)) case keybind.Matches(event, mi.cfg.Keybinds.MentionsList.Top.Keybind): - mi.mentionsList.HandleEvent(tcell.NewEventKey(tcell.KeyHome, "", tcell.ModNone)) - return nil + return mi.mentionsList.HandleEvent(tcell.NewEventKey(tcell.KeyHome, "", tcell.ModNone)) case keybind.Matches(event, mi.cfg.Keybinds.MentionsList.Bottom.Keybind): - mi.mentionsList.HandleEvent(tcell.NewEventKey(tcell.KeyEnd, "", tcell.ModNone)) - return nil + return mi.mentionsList.HandleEvent(tcell.NewEventKey(tcell.KeyEnd, "", tcell.ModNone)) } } go mi.chat.app.QueueUpdateDraw(func() { mi.tabSuggestion() }) } - - return handler(event) } - return mi.TextArea.HandleEvent(event) + return handler(event) } func (mi *messageInput) paste() { diff --git a/internal/ui/chat/model.go b/internal/ui/chat/model.go index 05edc3d..0962869 100644 --- a/internal/ui/chat/model.go +++ b/internal/ui/chat/model.go @@ -113,6 +113,7 @@ func (m *Model) buildLayout() { layers.WithName(mentionsListLayerName), layers.WithResize(false), layers.WithVisible(false), + layers.WithEnabled(false), ) }