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 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  	}  | 
