diff options
author | Stefan Haller <stefan@haller-berlin.de> | 2023-09-05 22:27:28 +0200 |
---|---|---|
committer | Stefan Haller <stefan@haller-berlin.de> | 2023-09-18 10:20:23 +0200 |
commit | e592d81b601d19d429ab61b7f3bd478de9844204 (patch) | |
tree | d912b28d3b39f731aca8ca3ac10269d58198086e /pkg/gui/keybindings.go | |
parent | f2f50ccf758033e817b20849a0175e7a383a3856 (diff) |
Add Enabled func to Binding
Diffstat (limited to 'pkg/gui/keybindings.go')
-rw-r--r-- | pkg/gui/keybindings.go | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/pkg/gui/keybindings.go b/pkg/gui/keybindings.go index cb14d0266..afb12ce85 100644 --- a/pkg/gui/keybindings.go +++ b/pkg/gui/keybindings.go @@ -375,7 +375,10 @@ func (gui *Gui) wrappedHandler(f func() error) func(g *gocui.Gui, v *gocui.View) } func (gui *Gui) SetKeybinding(binding *types.Binding) error { - handler := binding.Handler + handler := func() error { + return gui.callKeybindingHandler(binding) + } + // TODO: move all mouse-ey stuff into new mouse approach if gocui.IsMouseKey(binding.Key) { handler = func() error { @@ -406,3 +409,14 @@ func (gui *Gui) SetMouseKeybinding(binding *gocui.ViewMouseBinding) error { return gui.g.SetViewClickBinding(binding) } + +func (gui *Gui) callKeybindingHandler(binding *types.Binding) error { + disabledReason := "" + if binding.GetDisabledReason != nil { + disabledReason = binding.GetDisabledReason() + } + if disabledReason != "" { + return gui.c.ErrorMsg(disabledReason) + } + return binding.Handler() +} |