delete: select new last message if last message was deleted

If the last message is deleted, the new selection should be the last
message instead of the first message.

Fixes: https://todo.sr.ht/~rjarry/aerc/59
Reported-by: Sebastien Binet <s@sbinet.org>
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
Acked-by: Robin Jarry <robin@jarry.cc>
This commit is contained in:
Tim Culverhouse 2022-07-23 21:03:46 -05:00 committed by Robin Jarry
parent 80f8bab6cf
commit 9bfcec5660
1 changed files with 7 additions and 0 deletions

View File

@ -56,6 +56,7 @@ func (Delete) Execute(aerc *widgets.Aerc, args []string) error {
// no more messages in the list
if next == nil {
aerc.RemoveTab(h.msgProvider)
store.Select(len(store.Uids()))
acct.Messages().Invalidate()
return
}
@ -69,6 +70,12 @@ func (Delete) Execute(aerc *widgets.Aerc, args []string) error {
aerc.ReplaceTab(mv, nextMv, next.Envelope.Subject)
})
}
} else {
if next == nil {
// We deleted the last message, select the new last message
// instead of the first message
store.Select(len(store.Uids()))
}
}
acct.Messages().Invalidate()
case *types.Error: