From 71c13c907873d603bf15d68ab0372b75b271d18d Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Sat, 11 May 2019 14:15:29 -0400 Subject: [PATCH] "Press any key to close" for completed processes --- commands/account/pipe.go | 5 ++++- widgets/terminal.go | 6 ++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/commands/account/pipe.go b/commands/account/pipe.go index a4c9848..f44de30 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 63c105f..92736d5 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 }