diff options
-rw-r--r-- | camel/ChangeLog | 7 | ||||
-rw-r--r-- | camel/providers/imap/camel-imap-folder.c | 8 |
2 files changed, 13 insertions, 2 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog index dee5151d26..3d6ed1274e 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -1,3 +1,10 @@ +2000-12-06 Jeffrey Stedfast <fejj@helixcode.com> + + * providers/imap/camel-imap-folder.c (imap_refresh_info): We want + to bitwise-or the server and cached flags here so that we keep the + flags that we have set locally and set any additional flags that a + parallel connection may have set. + 2000-12-05 Jeffrey Stedfast <fejj@helixcode.com> * providers/smtp/camel-smtp-transport.c (smtp_data): If the data diff --git a/camel/providers/imap/camel-imap-folder.c b/camel/providers/imap/camel-imap-folder.c index 35346813db..b6f6cc1132 100644 --- a/camel/providers/imap/camel-imap-folder.c +++ b/camel/providers/imap/camel-imap-folder.c @@ -311,8 +311,12 @@ imap_refresh_info (CamelFolder *folder, CamelException *ex) /* Update summary flags */ if (info->flags != new[i].flags) { - info->flags = new[i].flags; - camel_object_trigger_event (CAMEL_OBJECT (folder), + /* Keep the flags that we have set locally and set + any additional flags that a parallel connection + may have set. */ + info->flags |= new[i].flags; + + camel_object_trigger_event (CAMEL_OBJECT (folder), "message_changed", (char *)camel_message_info_uid(info)); } |