diff --git a/pkg/gui/controllers/global_controller.go b/pkg/gui/controllers/global_controller.go index 6fa6fefef..2d7f796a5 100644 --- a/pkg/gui/controllers/global_controller.go +++ b/pkg/gui/controllers/global_controller.go @@ -35,11 +35,12 @@ func (self *GlobalController) GetKeybindings(opts types.KeybindingsOpts) []*type OpensMenu: true, }, { - Key: opts.GetKey(opts.Config.Universal.CreateRebaseOptionsMenu), - Handler: opts.Guards.NoPopupPanel(self.c.Helpers().MergeAndRebase.CreateRebaseOptionsMenu), - Description: self.c.Tr.ViewMergeRebaseOptions, - Tooltip: self.c.Tr.ViewMergeRebaseOptionsTooltip, - OpensMenu: true, + Key: opts.GetKey(opts.Config.Universal.CreateRebaseOptionsMenu), + Handler: opts.Guards.NoPopupPanel(self.c.Helpers().MergeAndRebase.CreateRebaseOptionsMenu), + Description: self.c.Tr.ViewMergeRebaseOptions, + Tooltip: self.c.Tr.ViewMergeRebaseOptionsTooltip, + OpensMenu: true, + GetDisabledReason: self.canShowRebaseOptions, }, { Key: opts.GetKey(opts.Config.Universal.Refresh), @@ -191,3 +192,12 @@ func (self *GlobalController) escape() error { func (self *GlobalController) toggleWhitespace() error { return (&ToggleWhitespaceAction{c: self.c}).Call() } + +func (self *GlobalController) canShowRebaseOptions() *types.DisabledReason { + if self.c.Model().WorkingTreeStateAtLastCommitRefresh.None() { + return &types.DisabledReason{ + Text: self.c.Tr.NotMergingOrRebasing, + } + } + return nil +}