aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--commands/account/pipe.go5
-rw-r--r--widgets/terminal.go6
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
}