diff --git a/main.go b/main.go index 2a49a5129f945fab7526780d2a658d7cc8ae1ce6..6cdc3d57f3276e931ce6658216083f60409e0f62 100644 --- a/main.go +++ b/main.go @@ -332,8 +332,8 @@ func (m *mainModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) { //nolint:gocyclo m.applyPluginFields(composer) } - // Check plugin key bindings for the current view - if m.plugins != nil { + // Check plugin key bindings for the current view, but not while the search overlay is open + if m.plugins != nil && !m.isSearchOverlayOpen() { if bindingCmd := m.handlePluginKeyBinding(keyMsg); bindingCmd != nil { cmds = append(cmds, bindingCmd) } @@ -2458,6 +2458,16 @@ func (m *mainModel) handlePluginKeyBinding(msg tea.KeyPressMsg) tea.Cmd { return nil } +func (m *mainModel) isSearchOverlayOpen() bool { + switch v := m.current.(type) { + case *tui.Inbox: + return v.IsSearchOverlayOpen() + case *tui.FolderInbox: + return v.GetInbox().IsSearchOverlayOpen() + } + return false +} + func (m *mainModel) syncPluginKeyBindings() { if m.plugins == nil { return diff --git a/tui/inbox.go b/tui/inbox.go index 1dbb5b2037209fb8b566cea9209cfe429f13d072..9f9049cf3c17c3abd16b5d99b49661a90a0f5cd0 100644 --- a/tui/inbox.go +++ b/tui/inbox.go @@ -1247,6 +1247,10 @@ func (m *Inbox) IsSearchActive() bool { return m != nil && (m.searchOverlay != nil || m.searchActive) } +func (m *Inbox) IsSearchOverlayOpen() bool { + return m != nil && m.searchOverlay != nil +} + func (m *Inbox) IsFilterActive() bool { return m != nil && (m.list.FilterState() == list.Filtering || m.list.FilterState() == list.FilterApplied) }