* src/procmsg.c
authorChristoph Hohmann <reboot@gmx.ch>
Tue, 13 Aug 2002 20:00:25 +0000 (20:00 +0000)
committerChristoph Hohmann <reboot@gmx.ch>
Tue, 13 Aug 2002 20:00:25 +0000 (20:00 +0000)
        ignore thread fix that did not mark all
        child nodes of a ignored thread as
        ignored. Does not work perfectly yet,
        but it is better now

ChangeLog.claws
configure.in
src/procmsg.c

index 9e975f5..656ae41 100644 (file)
@@ -1,3 +1,11 @@
+2002-08-13 [christoph] 0.8.1claws57
+
+       * src/procmsg.c
+               ignore thread fix that did not mark all
+               child nodes of a ignored thread as
+               ignored. Does not work perfectly yet,
+               but it is better now
+
 2002-08-13 [alfons]    0.8.1claws56
 
        * src/crash.c
index 2d7f5c3..1aad825 100644 (file)
@@ -8,7 +8,7 @@ MINOR_VERSION=8
 MICRO_VERSION=1
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=claws56
+EXTRA_VERSION=claws57
 VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
 
 dnl set $target
index 461c0c9..e038cf5 100644 (file)
@@ -531,6 +531,13 @@ FILE *procmsg_open_mark_file(const gchar *folder, gboolean append)
        return fp;
 }
 
+static gboolean procmsg_ignore_node(GNode *node, gpointer data)
+{
+       MsgInfo *msginfo = (MsgInfo *)node->data;
+       
+       procmsg_msginfo_set_flags(msginfo, MSG_IGNORE_THREAD, 0);
+}
+
 /* return the reversed thread tree */
 GNode *procmsg_get_thread_tree(GSList *mlist)
 {
@@ -597,7 +604,7 @@ GNode *procmsg_get_thread_tree(GSList *mlist)
                                (parent, parent->children, node);
                        /* CLAWS: ignore thread */
                        if(MSG_IS_IGNORE_THREAD(((MsgInfo *)parent->data)->flags) && !MSG_IS_IGNORE_THREAD(msginfo->flags)) {
-                               procmsg_msginfo_set_flags(msginfo, MSG_IGNORE_THREAD, 0);
+                               g_node_traverse(node, G_PRE_ORDER, G_TRAVERSE_ALL, -1, procmsg_ignore_node, NULL);
                        }
                }
                node = next;
@@ -628,13 +635,13 @@ GNode *procmsg_get_thread_tree(GSList *mlist)
                                g_node_append(parent, node);
                                /* CLAWS: ignore thread */
                                if(MSG_IS_IGNORE_THREAD(((MsgInfo *)parent->data)->flags) && !MSG_IS_IGNORE_THREAD(msginfo->flags)) {
-                                       procmsg_msginfo_set_flags(msginfo, MSG_IGNORE_THREAD, 0);
+                                       g_node_traverse(node, G_PRE_ORDER, G_TRAVERSE_ALL, -1, procmsg_ignore_node, NULL);
                                }
                        }
                }                                       
                node = next;
        }               
-               
+
        g_hash_table_destroy(subject_table);
        g_hash_table_destroy(msgid_table);