Skip to content

Commit

Permalink
Disable KeybindingsMenu using a DisabledReason when a panel is open
Browse files Browse the repository at this point in the history
This hides it from the options map at the bottom of the screen.
  • Loading branch information
stefanhaller committed Jan 3, 2025
1 parent 9de8d17 commit 928e76a
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 9 deletions.
20 changes: 16 additions & 4 deletions pkg/gui/controllers/global_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -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: "",
Expand Down Expand Up @@ -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()
}
Expand Down
5 changes: 0 additions & 5 deletions pkg/gui/controllers/options_menu_action.go
Original file line number Diff line number Diff line change
Expand Up @@ -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{}
Expand Down

0 comments on commit 928e76a

Please sign in to comment.