[geary/mjog/invert-folder-class-hierarchy: 58/72] Geary.App.ConversationMonitor: Check for email deleted flags on change
- From: Michael Gratton <mjog src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [geary/mjog/invert-folder-class-hierarchy: 58/72] Geary.App.ConversationMonitor: Check for email deleted flags on change
- Date: Wed, 3 Mar 2021 11:52:48 +0000 (UTC)
commit e6f8a2193bbeb8067df54b10a6e418b02d9a2434
Author: Michael Gratton <mike vee net>
Date: Tue Feb 23 23:03:23 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.
src/engine/app/app-conversation-monitor.vala | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
---
diff --git a/src/engine/app/app-conversation-monitor.vala b/src/engine/app/app-conversation-monitor.vala
index 7ab5af759..9780586b2 100644
--- a/src/engine/app/app-conversation-monitor.vala
+++ b/src/engine/app/app-conversation-monitor.vala
@@ -828,9 +828,12 @@ public class Geary.App.ConversationMonitor : BaseObject, Logging.Source {
Gee.HashSet<EmailIdentifier> removed_ids = new Gee.HashSet<EmailIdentifier>();
Gee.HashSet<Conversation> removed_conversations = new Gee.HashSet<Conversation>();
foreach (EmailIdentifier id in map.keys) {
+ var flags = map.get(id);
+
Conversation? conversation = this.conversations.get_by_email_identifier(id);
if (conversation == null) {
- if (folder == this.base_folder) {
+ if (!flags.is_deleted() &&
+ folder == this.base_folder) {
// Check to see if the incoming message is sorted later than the last message in the
// window. If it is, don't resurrect it since it likely hasn't been loaded yet.
Geary.EmailIdentifier? lowest = this.window_lowest;
@@ -862,7 +865,8 @@ public class Geary.App.ConversationMonitor : BaseObject, Logging.Source {
// Remove conversation if get_emails yields an empty collection -- this probably means
// the conversation was deleted.
- if (conversation.get_emails(Geary.App.Conversation.Ordering.NONE).size == 0) {
+ if (flags.is_deleted() &&
+ conversation.get_emails(Conversation.Ordering.NONE).size == 0) {
debug(
"Flagging email %s for deletion evaporates conversation %s",
id.to_string(), conversation.to_string()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]