[evolution-data-server] Bug #694084 - IMAPx doesn't stick Labels



commit a4e7dd07a7d26bec77ff40ee022e5054189c1f4c
Author: Milan Crha <mcrha redhat com>
Date:   Tue Feb 18 14:12:04 2014 +0100

    Bug #694084 - IMAPx doesn't stick Labels

 camel/providers/imapx/camel-imapx-utils.c |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)
---
diff --git a/camel/providers/imapx/camel-imapx-utils.c b/camel/providers/imapx/camel-imapx-utils.c
index 693ed0e..83a98c3 100644
--- a/camel/providers/imapx/camel-imapx-utils.c
+++ b/camel/providers/imapx/camel-imapx-utils.c
@@ -281,11 +281,15 @@ imapx_update_message_info_flags (CamelMessageInfo *info,
        gboolean changed = FALSE;
        CamelIMAPXMessageInfo *xinfo = (CamelIMAPXMessageInfo *) info;
 
+       /* Locally made changes should not be overwritten, it'll be (re)saved later */
+       if ((camel_message_info_flags (info) & CAMEL_MESSAGE_FOLDER_FLAGGED) != 0) {
+               d ('?', "Skipping update of locally changed uid:'%s'\n", camel_message_info_uid (info));
+               return FALSE;
+       }
+
        /* This makes sure that server flags has precedence from locally stored flags,
-          thus a user actually sees what is stored on the server, but only if the message
-          was not changed locally and is ready to be saved */
-       if (!(camel_message_info_flags (info) & CAMEL_MESSAGE_FOLDER_FLAGGED) &&
-           (camel_message_info_flags (info) & CAMEL_IMAPX_SERVER_FLAGS) != (server_flags & 
CAMEL_IMAPX_SERVER_FLAGS)) {
+          thus a user actually sees what is stored on the server */
+       if ((camel_message_info_flags (info) & CAMEL_IMAPX_SERVER_FLAGS) != (server_flags & 
CAMEL_IMAPX_SERVER_FLAGS)) {
                xinfo->server_flags = (xinfo->server_flags & ~CAMEL_IMAPX_SERVER_FLAGS) |
                                      (camel_message_info_flags (info) & CAMEL_IMAPX_SERVER_FLAGS);
        }


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