From 792839b9a3196b3a8f1c57a2ced64e064061b9f9 Mon Sep 17 00:00:00 2001 From: Koni Marti Date: Mon, 22 May 2023 23:52:41 +0200 Subject: lib: don't set seen flag upon error Don't set the Seen flag when an error occurs during opening the message. Fixes: https://todo.sr.ht/~rjarry/aerc/125 Signed-off-by: Koni Marti Tested-by: Moritz Poldrack Acked-by: Robin Jarry --- lib/messageview.go | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/messageview.go b/lib/messageview.go index d0754cc1..f2d30086 100644 --- a/lib/messageview.go +++ b/lib/messageview.go @@ -70,14 +70,22 @@ type MessageStoreView struct { func NewMessageStoreView(messageInfo *models.MessageInfo, setSeen bool, store *MessageStore, pgp crypto.Provider, decryptKeys openpgp.PromptFunction, - cb func(MessageView, error), + innerCb func(MessageView, error), ) { + cb := func(msv MessageView, err error) { + if msv != nil && setSeen && err == nil { + store.Flag([]uint32{messageInfo.Uid}, models.SeenFlag, true, nil) + } + innerCb(msv, err) + } + if messageInfo == nil { // Call nils to the callback, the split view will use this to // display an empty view cb(nil, nil) return } + msv := &MessageStoreView{ messageInfo, store, nil, nil, messageInfo.BodyStructure, @@ -114,9 +122,6 @@ func NewMessageStoreView(messageInfo *models.MessageInfo, setSeen bool, } else { cb(msv, nil) } - if setSeen { - store.Flag([]uint32{messageInfo.Uid}, models.SeenFlag, true, nil) - } } func (msv *MessageStoreView) SeenFlagSet() bool { -- cgit v1.2.3-54-g00ecf