aboutsummaryrefslogtreecommitdiff
path: root/widgets
diff options
context:
space:
mode:
authorDaniel Bridges <bridges2@gmail.com>2019-08-03 21:09:13 -0700
committerDrew DeVault <sir@cmpwn.com>2019-08-07 14:07:48 +0900
commit0a521241025d22d060b62cabe145bd9768b5da16 (patch)
tree09661a7bce1b209effa7d80edc7153b33af796c4 /widgets
parent0ceea02720bcebb7e672b42cc72b2e8ce117ada8 (diff)
Allow cc/bcc command to receive no arguments
Diffstat (limited to 'widgets')
-rw-r--r--widgets/compose.go17
1 files changed, 17 insertions, 0 deletions
diff --git a/widgets/compose.go b/widgets/compose.go
index 936da14..c7e38b8 100644
--- a/widgets/compose.go
+++ b/widgets/compose.go
@@ -509,6 +509,17 @@ func (c *Composer) NextField() {
c.focusable[c.focused].Focus(true)
}
+func (c *Composer) FocusEditor(editor *headerEditor) {
+ c.focusable[c.focused].Focus(false)
+ for i, e := range c.focusable {
+ if e == editor {
+ c.focused = i
+ break
+ }
+ }
+ c.focusable[c.focused].Focus(true)
+}
+
// AddEditor appends a new header editor to the compose window.
func (c *Composer) AddEditor(header string, value string, appendHeader bool) {
if _, ok := c.editors[header]; ok {
@@ -517,6 +528,9 @@ func (c *Composer) AddEditor(header string, value string, appendHeader bool) {
value = strings.TrimSpace(header) + ", " + value
}
c.editors[header].input.Set(value)
+ if value == "" {
+ c.FocusEditor(c.editors[header])
+ }
return
}
e := newHeaderEditor(header, value)
@@ -529,6 +543,9 @@ func (c *Composer) AddEditor(header string, value string, appendHeader bool) {
c.focusable[len(c.focusable)-1],
)
c.updateGrid()
+ if value == "" {
+ c.FocusEditor(c.editors[header])
+ }
}
// updateGrid should be called when the underlying header layout is changed.