From 091d4711eacff4dbd62a5b2446a4c841418f81b3 Mon Sep 17 00:00:00 2001 From: ayn2op Date: Wed, 2 Sep 2026 20:24:03 -0400 Subject: [PATCH] fix(chat): preserve focus without guilds tree --- internal/ui/chat/model.go | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/internal/ui/chat/model.go b/internal/ui/chat/model.go index 8d26db6..7c05e0e 100644 --- a/internal/ui/chat/model.go +++ b/internal/ui/chat/model.go @@ -194,10 +194,10 @@ func (m *Model) navigateToChannel(channelID discord.ChannelID) tview.Cmd { func (m *Model) toggleGuildsTree() tview.Cmd { if m.mainFlex.GetItemCount() == 2 { - m.mainFlex.RemoveItem(m.guildsTree) if m.focusedModel() == m.guildsTree { - m.setFocus(m.mainFlex) + m.setFocus(m.messagesList) } + m.mainFlex.RemoveItem(m.guildsTree) } else { m.buildLayout() m.setFocus(m.guildsTree) @@ -397,10 +397,10 @@ func (m *Model) setFocus(target tview.Model) { m.mainFlex.SetFocus(0) case m.messagesList: m.rightFlex.SetFocus(0) - m.mainFlex.SetFocus(1) + m.mainFlex.SetFocus(m.mainFlex.GetItemCount() - 1) case m.composer: m.rightFlex.SetFocus(1) - m.mainFlex.SetFocus(1) + m.mainFlex.SetFocus(m.mainFlex.GetItemCount() - 1) case m.mainFlex: m.mainFlex.SetFocus(-1) } @@ -424,10 +424,12 @@ func (m *Model) View(screen tcell.Screen) { } func (m *Model) focusedModel() tview.Model { - if m.mainFlex.Focused() == 0 { + count := m.mainFlex.GetItemCount() + focused := m.mainFlex.Focused() + if count == 2 && focused == 0 { return m.guildsTree } - if m.mainFlex.Focused() == 1 { + if count > 0 && focused == count-1 { if m.rightFlex.Focused() == 0 { return m.messagesList }