[evolution-data-server] Bug #694084 - IMAPx doesn't stick Labels
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] Bug #694084 - IMAPx doesn't stick Labels
- Date: Tue, 18 Feb 2014 13:11:45 +0000 (UTC)
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]