Fix re-opening of expired pipe tabs
This commit is contained in:
parent
6797f93476
commit
133085b436
3 changed files with 24 additions and 4 deletions
|
@ -36,10 +36,14 @@ func (_ ExecCmd) Execute(aerc *widgets.Aerc, args []string) error {
|
||||||
aerc.PushStatus(" "+err.Error(), 10*time.Second).
|
aerc.PushStatus(" "+err.Error(), 10*time.Second).
|
||||||
Color(tcell.ColorDefault, tcell.ColorRed)
|
Color(tcell.ColorDefault, tcell.ColorRed)
|
||||||
} else {
|
} else {
|
||||||
|
color := tcell.ColorDefault
|
||||||
|
if cmd.ProcessState.ExitCode() != 0 {
|
||||||
|
color = tcell.ColorRed
|
||||||
|
}
|
||||||
aerc.PushStatus(fmt.Sprintf(
|
aerc.PushStatus(fmt.Sprintf(
|
||||||
"%s: completed with status %d", args[0],
|
"%s: completed with status %d", args[0],
|
||||||
cmd.ProcessState.ExitCode()), 10*time.Second).
|
cmd.ProcessState.ExitCode()), 10*time.Second).
|
||||||
Color(tcell.ColorDefault, tcell.ColorDefault)
|
Color(tcell.ColorDefault, color)
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
return nil
|
return nil
|
||||||
|
|
|
@ -91,10 +91,14 @@ func (_ Pipe) Execute(aerc *widgets.Aerc, args []string) error {
|
||||||
aerc.PushStatus(" "+err.Error(), 10*time.Second).
|
aerc.PushStatus(" "+err.Error(), 10*time.Second).
|
||||||
Color(tcell.ColorDefault, tcell.ColorRed)
|
Color(tcell.ColorDefault, tcell.ColorRed)
|
||||||
} else {
|
} else {
|
||||||
|
color := tcell.ColorDefault
|
||||||
|
if ecmd.ProcessState.ExitCode() != 0 {
|
||||||
|
color = tcell.ColorRed
|
||||||
|
}
|
||||||
aerc.PushStatus(fmt.Sprintf(
|
aerc.PushStatus(fmt.Sprintf(
|
||||||
"%s: completed with status %d", args[0],
|
"%s: completed with status %d", cmd[0],
|
||||||
ecmd.ProcessState.ExitCode()), 10*time.Second).
|
ecmd.ProcessState.ExitCode()), 10*time.Second).
|
||||||
Color(tcell.ColorDefault, tcell.ColorDefault)
|
Color(tcell.ColorDefault, color)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -92,7 +92,18 @@ func (store *MessageStore) FetchFull(uids []uint32, cb func(io.Reader)) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if len(toFetch) > 0 {
|
if len(toFetch) > 0 {
|
||||||
store.worker.PostAction(&types.FetchFullMessages{Uids: toFetch}, nil)
|
store.worker.PostAction(&types.FetchFullMessages{
|
||||||
|
Uids: toFetch,
|
||||||
|
}, func(msg types.WorkerMessage) {
|
||||||
|
switch msg.(type) {
|
||||||
|
case *types.Error:
|
||||||
|
for _, uid := range toFetch {
|
||||||
|
if _, ok := store.bodyCallbacks[uid]; ok {
|
||||||
|
delete(store.bodyCallbacks, uid)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -169,6 +180,7 @@ func (store *MessageStore) Update(msg types.WorkerMessage) {
|
||||||
for _, cb := range cbs {
|
for _, cb := range cbs {
|
||||||
cb(msg.Content.Reader)
|
cb(msg.Content.Reader)
|
||||||
}
|
}
|
||||||
|
delete(store.bodyCallbacks, msg.Content.Uid)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case *types.MessagesDeleted:
|
case *types.MessagesDeleted:
|
||||||
|
|
Loading…
Reference in a new issue