diff --git a/pkg/gui/controllers/global_controller.go b/pkg/gui/controllers/global_controller.go index 984ce3668..818a31178 100644 --- a/pkg/gui/controllers/global_controller.go +++ b/pkg/gui/controllers/global_controller.go @@ -69,10 +69,11 @@ func (self *GlobalController) GetKeybindings(opts types.KeybindingsOpts) []*type Modifier: gocui.ModNone, // we have the description on the alt key and not the main key for legacy reasons // (the original main key was 'x' but we've reassigned that to other purposes) - Description: self.c.Tr.OpenKeybindingsMenu, - Handler: self.createOptionsMenu, - ShortDescription: self.c.Tr.Keybindings, - DisplayOnScreen: true, + Description: self.c.Tr.OpenKeybindingsMenu, + Handler: self.createOptionsMenu, + ShortDescription: self.c.Tr.Keybindings, + DisplayOnScreen: true, + GetDisabledReason: self.optionsMenuDisabledReason, }, { ViewName: "", @@ -156,6 +157,17 @@ func (self *GlobalController) createOptionsMenu() error { return (&OptionsMenuAction{c: self.c}).Call() } +func (self *GlobalController) optionsMenuDisabledReason() *types.DisabledReason { + ctx := self.c.Context().Current() + // Don't show options menu while displaying popup. + if ctx.GetKind() == types.PERSISTENT_POPUP || ctx.GetKind() == types.TEMPORARY_POPUP { + // The empty error text is intentional. We don't want to show an error + // toast for this, but only hide it from the options map. + return &types.DisabledReason{Text: ""} + } + return nil +} + func (self *GlobalController) createFilteringMenu() error { return (&FilteringMenuAction{c: self.c}).Call() } diff --git a/pkg/gui/controllers/options_menu_action.go b/pkg/gui/controllers/options_menu_action.go index 7f3f1de64..8e3f1db9b 100644 --- a/pkg/gui/controllers/options_menu_action.go +++ b/pkg/gui/controllers/options_menu_action.go @@ -13,11 +13,6 @@ type OptionsMenuAction struct { func (self *OptionsMenuAction) Call() error { ctx := self.c.Context().Current() - // Don't show menu while displaying popup. - if ctx.GetKind() == types.PERSISTENT_POPUP || ctx.GetKind() == types.TEMPORARY_POPUP { - return nil - } - local, global, navigation := self.getBindings(ctx) menuItems := []*types.MenuItem{}