aboutsummaryrefslogtreecommitdiffstats
path: root/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'widgets')
-rw-r--r--widgets/aerc.go11
-rw-r--r--widgets/compose.go10
2 files changed, 19 insertions, 2 deletions
diff --git a/widgets/aerc.go b/widgets/aerc.go
index fb109d42..61d46457 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 38c33fcd..2daa29c2 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)
}