aboutsummaryrefslogtreecommitdiffstats
path: root/camel/providers/imap
diff options
context:
space:
mode:
authorDan Winship <danw@src.gnome.org>2000-12-06 00:46:15 +0800
committerDan Winship <danw@src.gnome.org>2000-12-06 00:46:15 +0800
commit8d4e508f40ad5910d240868b6885ab9473751b78 (patch)
tree42859cb6fc74ee4503cac63e0c72eddc3b57e759 /camel/providers/imap
parentb05a2b14c8c4609548fa286807dd3371c9302d1e (diff)
downloadgsoc2013-evolution-8d4e508f40ad5910d240868b6885ab9473751b78.tar
gsoc2013-evolution-8d4e508f40ad5910d240868b6885ab9473751b78.tar.gz
gsoc2013-evolution-8d4e508f40ad5910d240868b6885ab9473751b78.tar.bz2
gsoc2013-evolution-8d4e508f40ad5910d240868b6885ab9473751b78.tar.lz
gsoc2013-evolution-8d4e508f40ad5910d240868b6885ab9473751b78.tar.xz
gsoc2013-evolution-8d4e508f40ad5910d240868b6885ab9473751b78.tar.zst
gsoc2013-evolution-8d4e508f40ad5910d240868b6885ab9473751b78.zip
Fix the check for "flags aren't actually changing".
* providers/imap/camel-imap-folder.c (imap_set_message_flags): Fix the check for "flags aren't actually changing". * providers/local/camel-local-folder.c (local_set_message_flags, local_set_message_user_flag, local_set_message_user_tag): Don't emit message_changed unless the flags actually changed. * providers/nntp/camel-nntp-folder.c (nntp_folder_set_message_flags): Don't emit message_changed unless the flags actually changed. Fix the check for marked as seen. svn path=/trunk/; revision=6797
Diffstat (limited to 'camel/providers/imap')
-rw-r--r--camel/providers/imap/camel-imap-folder.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/camel/providers/imap/camel-imap-folder.c b/camel/providers/imap/camel-imap-folder.c
index 892eb71d50..5d882856e2 100644
--- a/camel/providers/imap/camel-imap-folder.c
+++ b/camel/providers/imap/camel-imap-folder.c
@@ -799,14 +799,16 @@ imap_set_message_flags (CamelFolder *folder, const char *uid, guint32 flags, gui
{
CamelImapFolder *imap_folder = (CamelImapFolder *)folder;
CamelMessageInfo *info;
+ guint32 new;
info = camel_folder_summary_uid (imap_folder->summary, uid);
g_return_if_fail (info != NULL);
- if ((info->flags & set) == flags)
+ new = (info->flags & ~flags) | (set & flags);
+ if (new == info->flags)
return;
- info->flags = (info->flags & ~flags) | (set & flags) | CAMEL_MESSAGE_FOLDER_FLAGGED;
+ info->flags = new | CAMEL_MESSAGE_FOLDER_FLAGGED;
camel_folder_summary_touch (imap_folder->summary);
camel_object_trigger_event (CAMEL_OBJECT (folder), "message_changed",