diff options
author | Drew DeVault <sir@cmpwn.com> | 2019-05-14 14:27:28 -0400 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2019-05-14 14:27:28 -0400 |
commit | f77d7c2c3d578ae5a724e1e8b91656304dde75d0 (patch) | |
tree | 77b4be714678ca6b1d25d94ba89215606c03d727 /widgets | |
parent | 928ac1bcd9f7e4a6f20ab23a9416180534417cff (diff) | |
download | aerc-f77d7c2c3d578ae5a724e1e8b91656304dde75d0.tar.gz |
Add distinct keybindings for each compose view
Diffstat (limited to 'widgets')
-rw-r--r-- | widgets/aerc.go | 11 | ||||
-rw-r--r-- | widgets/compose.go | 10 |
2 files changed, 19 insertions, 2 deletions
diff --git a/widgets/aerc.go b/widgets/aerc.go index fb109d4..61d4645 100644 --- a/widgets/aerc.go +++ b/widgets/aerc.go @@ -88,11 +88,18 @@ func (aerc *Aerc) Draw(ctx *libui.Context) { } func (aerc *Aerc) getBindings() *config.KeyBindings { - switch aerc.SelectedTab().(type) { + switch view := aerc.SelectedTab().(type) { case *AccountView: return aerc.conf.Bindings.MessageList case *Composer: - return aerc.conf.Bindings.Compose + switch view.Bindings() { + case "compose::editor": + return aerc.conf.Bindings.ComposeEditor + case "compose::review": + return aerc.conf.Bindings.ComposeReview + default: + return aerc.conf.Bindings.Compose + } case *MessageViewer: return aerc.conf.Bindings.MessageView case *Terminal: diff --git a/widgets/compose.go b/widgets/compose.go index 38c33fc..2daa29c 100644 --- a/widgets/compose.go +++ b/widgets/compose.go @@ -120,6 +120,16 @@ func (c *Composer) Close() { } } +func (c *Composer) Bindings() string { + if c.editor == nil { + return "compose::review" + } else if c.editor == c.focusable[c.focused] { + return "compose::editor" + } else { + return "compose" + } +} + func (c *Composer) Event(event tcell.Event) bool { return c.focusable[c.focused].Event(event) } |