summaryrefslogtreecommitdiffstats
path: root/pkg/gui/keybindings.go
diff options
context:
space:
mode:
authorStefan Haller <stefan@haller-berlin.de>2023-09-05 22:27:28 +0200
committerStefan Haller <stefan@haller-berlin.de>2023-09-18 10:20:23 +0200
commite592d81b601d19d429ab61b7f3bd478de9844204 (patch)
treed912b28d3b39f731aca8ca3ac10269d58198086e /pkg/gui/keybindings.go
parentf2f50ccf758033e817b20849a0175e7a383a3856 (diff)
Add Enabled func to Binding
Diffstat (limited to 'pkg/gui/keybindings.go')
-rw-r--r--pkg/gui/keybindings.go16
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()
+}