From 9bfcec56600a20f3e84404e4ddba7d0a5ceecbd9 Mon Sep 17 00:00:00 2001 From: Tim Culverhouse Date: Sat, 23 Jul 2022 21:03:46 -0500 Subject: 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 Signed-off-by: Tim Culverhouse Acked-by: Robin Jarry --- commands/msg/delete.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/commands/msg/delete.go b/commands/msg/delete.go index 7b56a55..2d7ad0f 100644 --- a/commands/msg/delete.go +++ b/commands/msg/delete.go @@ -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: -- cgit v1.2.3