diff options
author | Drew DeVault <sir@cmpwn.com> | 2019-03-21 17:49:59 -0400 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2019-03-21 17:49:59 -0400 |
commit | 699f1cf7a65a29ed512d62fd7626dd38d3cd7c7e (patch) | |
tree | 63a93cbb707168707d8b72a097aa7bd710b324ea /widgets | |
parent | 6d01332b5562738270dbad6c60d61c3652a8f988 (diff) |
Use : for keybindings even when ex is overridden
Diffstat (limited to 'widgets')
-rw-r--r-- | widgets/aerc.go | 12 |
1 files 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 } |