diff options
-rw-r--r-- | commands/account/pipe.go | 5 | ||||
-rw-r--r-- | widgets/terminal.go | 6 |
2 files changed, 10 insertions, 1 deletions
diff --git a/commands/account/pipe.go b/commands/account/pipe.go index a4c9848d..f44de307 100644 --- a/commands/account/pipe.go +++ b/commands/account/pipe.go @@ -44,9 +44,12 @@ func Pipe(aerc *widgets.Aerc, args []string) error { aerc.PushStatus(" "+err.Error(), 10*time.Second). Color(tcell.ColorDefault, tcell.ColorRed) } else { - // TODO: Tab-specific status stacks aerc.PushStatus("Process complete, press any key to close.", 10*time.Second) + term.OnEvent = func(event tcell.Event) bool { + aerc.RemoveTab(term) + return true + } } } term.OnStart = func() { diff --git a/widgets/terminal.go b/widgets/terminal.go index 63c105fe..92736d5b 100644 --- a/widgets/terminal.go +++ b/widgets/terminal.go @@ -104,6 +104,7 @@ type Terminal struct { vterm *vterm.VTerm OnClose func(err error) + OnEvent func(event tcell.Event) bool OnStart func() OnTitle func(title string) } @@ -354,6 +355,11 @@ func convertMods(mods tcell.ModMask) vterm.Modifier { } func (term *Terminal) Event(event tcell.Event) bool { + if term.OnEvent != nil { + if term.OnEvent(event) { + return true + } + } if term.closed { return false } |