[geary/mjog/replay-queue-fixes: 2/2] Geary.App.ConversationMonitor: Check for email deleted flags on change




commit de3946d4a25e72fb4b9cbb8a2a7b3db612f1d6a2
Author: Michael Gratton <mike vee net>
Date:   Tue Feb 23 22:58:02 2021 +1100

    Geary.App.ConversationMonitor: Check for email deleted flags on change
    
    Ensure an email's deleted flag is appropriately set (or not) before
    re-adding or evaporating conversations based on them.

 .../imap-engine/replay-ops/imap-engine-replay-update.vala      | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)
---
diff --git a/src/engine/imap-engine/replay-ops/imap-engine-replay-update.vala 
b/src/engine/imap-engine/replay-ops/imap-engine-replay-update.vala
index beb573553..2a75f07ec 100644
--- a/src/engine/imap-engine/replay-ops/imap-engine-replay-update.vala
+++ b/src/engine/imap-engine/replay-ops/imap-engine-replay-update.vala
@@ -61,7 +61,15 @@ private class Geary.ImapEngine.ReplayUpdate : Geary.ImapEngine.ReplayOperation {
 
                 yield this.owner.local_folder.set_email_flags_async(changed_map, null);
 
-                this.owner.replay_notify_email_flags_changed(changed_map);
+                // only notify if the email is not marked for deletion
+                try {
+                    yield this.owner.local_folder.fetch_email_async(
+                        id, NONE, NONE, null
+                    );
+                    this.owner.replay_notify_email_flags_changed(changed_map);
+                } catch (EngineError.NOT_FOUND err) {
+                    //fine
+                }
             } else {
                 debug("%s replay_local_async id is null!", to_string());
             }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]