From 699f1cf7a65a29ed512d62fd7626dd38d3cd7c7e Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Thu, 21 Mar 2019 17:49:59 -0400 Subject: [PATCH] Use : for keybindings even when ex is overridden --- widgets/aerc.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/widgets/aerc.go b/widgets/aerc.go index 157cdd6..bdf94bd 100644 --- a/widgets/aerc.go +++ b/widgets/aerc.go @@ -18,6 +18,7 @@ type Aerc struct { focused libui.Interactive grid *libui.Grid logger *log.Logger + simulating int statusbar *libui.Stack statusline *StatusLine pendingKeys []config.KeyStroke @@ -107,11 +108,13 @@ func (aerc *Aerc) getBindings() *config.KeyBindings { func (aerc *Aerc) simulate(strokes []config.KeyStroke) { aerc.pendingKeys = []config.KeyStroke{} + aerc.simulating += 1 for _, stroke := range strokes { simulated := tcell.NewEventKey( stroke.Key, stroke.Rune, tcell.ModNone) aerc.Event(simulated) } + aerc.simulating -= 1 } func (aerc *Aerc) Event(event tcell.Event) bool { @@ -150,9 +153,12 @@ func (aerc *Aerc) Event(event tcell.Event) bool { } if !incomplete { aerc.pendingKeys = []config.KeyStroke{} - if event.Key() == bindings.ExKey.Key && - event.Rune() == bindings.ExKey.Rune { - + exKey := bindings.ExKey + if aerc.simulating > 0 { + // Keybindings still use : even if you change the ex key + exKey = aerc.conf.Bindings.Global.ExKey + } + if event.Key() == exKey.Key && event.Rune() == exKey.Rune { aerc.BeginExCommand() return true }