From 6057d156e6abd0b4c309e00c05021213565a2775 Mon Sep 17 00:00:00 2001 From: Tim Culverhouse Date: Thu, 4 Aug 2022 21:43:48 -0500 Subject: [PATCH] delete: revert deleted messages if Delete is unsupported Delete operations are not supported by the notmuch backend. Revert deleted messages when the operation is not supported, and reselect the original selection. Signed-off-by: Tim Culverhouse Tested-by: Koni Marti Acked-by: Robin Jarry --- commands/msg/delete.go | 3 +++ lib/msgstore.go | 3 +++ 2 files changed, 6 insertions(+) diff --git a/commands/msg/delete.go b/commands/msg/delete.go index fdb2117..ceb570b 100644 --- a/commands/msg/delete.go +++ b/commands/msg/delete.go @@ -42,6 +42,7 @@ func (Delete) Execute(aerc *widgets.Aerc, args []string) error { if err != nil { return err } + sel := store.Selected() // caution, can be nil next := findNextNonDeleted(uids, store) store.ClearVisualMark() @@ -80,9 +81,11 @@ func (Delete) Execute(aerc *widgets.Aerc, args []string) error { } case *types.Error: store.Remark() + store.Select(sel.Uid) aerc.PushError(msg.Error.Error()) case *types.Unsupported: store.Remark() + store.Select(sel.Uid) // notmuch doesn't support it, we want the user to know aerc.PushError(" error, unsupported for this worker") } diff --git a/lib/msgstore.go b/lib/msgstore.go index efa6f73..9799a99 100644 --- a/lib/msgstore.go +++ b/lib/msgstore.go @@ -440,6 +440,9 @@ func (store *MessageStore) Delete(uids []uint32, if _, ok := msg.(*types.Error); ok { store.revertDeleted(uids) } + if _, ok := msg.(*types.Unsupported); ok { + store.revertDeleted(uids) + } cb(msg) }) }