0.8.11claws25
authorChristoph Hohmann <reboot@gmx.ch>
Tue, 18 Mar 2003 16:21:19 +0000 (16:21 +0000)
committerChristoph Hohmann <reboot@gmx.ch>
Tue, 18 Mar 2003 16:21:19 +0000 (16:21 +0000)
* src/folder.c
* src/procmsg.c
* src/summaryview.c
        unset NEW and UNREAD flags when message is ignored, to make
        sure messages don't show up as unread on other IMAP clients,
        because the IGNORE_THREAD flag can not be syncronized through
        the IMAP folder

ChangeLog.claws
configure.ac
src/folder.c
src/procmsg.c
src/summaryview.c

index 48a8847..148e2bf 100644 (file)
@@ -1,3 +1,13 @@
+2003-03-17 [christoph] 0.8.11claws25
+
+       * src/folder.c
+       * src/procmsg.c
+       * src/summaryview.c
+               unset NEW and UNREAD flags when message is ignored, to make
+               sure messages don't show up as unread on other IMAP clients,
+               because the IGNORE_THREAD flag can not be syncronized through
+               the IMAP folder
+
 2003-03-17 [christoph] 0.8.11claws24
 
        * src/imap.c
index 30c0a0e..697d30a 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=8
 MICRO_VERSION=11
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=claws24
+EXTRA_VERSION=claws25
 VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
 
 dnl set $target
index 312373c..66d77d4 100644 (file)
@@ -1229,8 +1229,10 @@ gint folder_item_scan(FolderItem *item)
                        unreadcnt++;
                if (MSG_IS_UNREAD(msginfo->flags) && procmsg_msg_has_marked_parent(msginfo))
                        unreadmarkedcnt++;
-               if (!MSG_IS_IGNORE_THREAD(msginfo->flags) && procmsg_msg_has_flagged_parent(msginfo, MSG_IGNORE_THREAD))
+               if (!MSG_IS_IGNORE_THREAD(msginfo->flags) && procmsg_msg_has_flagged_parent(msginfo, MSG_IGNORE_THREAD)) {
+                       procmsg_msginfo_unset_flags(msginfo, MSG_NEW | MSG_UNREAD, 0);
                        procmsg_msginfo_set_flags(msginfo, MSG_IGNORE_THREAD, 0);
+               }
                totalcnt++;
 
                procmsg_msginfo_free(msginfo);
index 2240b14..306bdcd 100644 (file)
@@ -137,6 +137,7 @@ static gboolean procmsg_ignore_node(GNode *node, gpointer data)
 {
        MsgInfo *msginfo = (MsgInfo *)node->data;
        
+       procmsg_msginfo_unset_flags(msginfo, MSG_NEW | MSG_UNREAD, 0);
        procmsg_msginfo_set_flags(msginfo, MSG_IGNORE_THREAD, 0);
 
        return FALSE;
@@ -167,6 +168,7 @@ GNode *procmsg_get_thread_tree(GSList *mlist)
                                parent = root;
                        } else {
                                if (MSG_IS_IGNORE_THREAD(((MsgInfo *)parent->data)->flags) && !MSG_IS_IGNORE_THREAD(msginfo->flags)) {
+                                       procmsg_msginfo_unset_flags(msginfo, MSG_NEW | MSG_UNREAD, 0);
                                        procmsg_msginfo_set_flags(msginfo, MSG_IGNORE_THREAD, 0);
                                }
                        }
index 813b856..a05f0b5 100644 (file)
@@ -5110,6 +5110,7 @@ static void summary_ignore_thread_func(GtkCTree *ctree, GtkCTreeNode *row, gpoin
        if (MSG_IS_UNREAD(msginfo->flags) && procmsg_msg_has_marked_parent(msginfo))
                summaryview->unreadmarked--;
 
+       procmsg_msginfo_unset_flags(msginfo, MSG_NEW | MSG_UNREAD, 0);
        procmsg_msginfo_set_flags(msginfo, MSG_IGNORE_THREAD, 0);
 
        summary_set_row_marks(summaryview, row);
@@ -5122,10 +5123,14 @@ static void summary_ignore_thread(SummaryView *summaryview)
        GtkCTree *ctree = GTK_CTREE(summaryview->ctree);
        GList *cur;
 
+       folder_item_update_freeze();
+
        for (cur = GTK_CLIST(ctree)->selection; cur != NULL; cur = cur->next) {
                gtk_ctree_pre_recursive(ctree, GTK_CTREE_NODE(cur->data), GTK_CTREE_FUNC(summary_ignore_thread_func), summaryview);
        }
 
+       folder_item_update_thaw();
+
        summary_status_show(summaryview);
 }
 
@@ -5155,10 +5160,14 @@ static void summary_unignore_thread(SummaryView *summaryview)
        GtkCTree *ctree = GTK_CTREE(summaryview->ctree);
        GList *cur;
 
+       folder_item_update_freeze();
+
        for (cur = GTK_CLIST(ctree)->selection; cur != NULL; cur = cur->next) {
                gtk_ctree_pre_recursive(ctree, GTK_CTREE_NODE(cur->data), GTK_CTREE_FUNC(summary_unignore_thread_func), summaryview);
        }
 
+       folder_item_update_thaw();
+
        summary_status_show(summaryview);
 }