diff --git a/main.go b/main.go index 9462de21f2b1f5ec2c90c539e2089293b77135b2..406cab549f09d708a6a9be12f2482fcaee79a321 100644 --- a/main.go +++ b/main.go @@ -235,6 +235,7 @@ func (m *mainModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) { var cmds []tea.Cmd searchWasActive := false filterWasActive := false + splitWasOpen := false if keyMsg, ok := msg.(tea.KeyPressMsg); ok && keyMsg.String() == config.Keybinds.Global.Cancel { switch current := m.current.(type) { @@ -246,6 +247,7 @@ func (m *mainModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) { searchWasActive = inbox.IsSearchActive() filterWasActive = inbox.IsFilterActive() } + splitWasOpen = current.HasSplitPreview() } } @@ -287,7 +289,7 @@ func (m *mainModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) { case *tui.FilePicker: return m, func() tea.Msg { return tui.CancelFilePickerMsg{} } case *tui.FolderInbox, *tui.Inbox, *tui.Login: - if searchWasActive || filterWasActive { + if searchWasActive || filterWasActive || splitWasOpen { return m, tea.Batch(cmds...) } m.idleWatcher.StopAll() diff --git a/tui/folder_inbox.go b/tui/folder_inbox.go index 784477a44e42f83ee0fad9524ff24097bb7c3f7a..86c3d49eba924268e998ee53b302fdd8a1325625 100644 --- a/tui/folder_inbox.go +++ b/tui/folder_inbox.go @@ -685,6 +685,11 @@ func (m *FolderInbox) GetCurrentFolder() string { return m.currentFolder } +// HasSplitPreview reports whether the split preview pane is currently open. +func (m *FolderInbox) HasSplitPreview() bool { + return m.previewPane != nil +} + // GetInbox returns the embedded inbox. func (m *FolderInbox) GetInbox() *Inbox { return m.inbox