2009-07-28 [colin] 3.7.2cvs13
authorColin Leroy <colin@colino.net>
Tue, 28 Jul 2009 18:38:06 +0000 (18:38 +0000)
committerColin Leroy <colin@colino.net>
Tue, 28 Jul 2009 18:38:06 +0000 (18:38 +0000)
* src/summaryview.c
Fix bug 1966, '"Collapse all threads" slower than
"Expand all threads"'

ChangeLog
PATCHSETS
configure.ac
src/summaryview.c

index 6feed44..331d783 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2009-07-28 [colin]     3.7.2cvs13
+
+       * src/summaryview.c
+               Fix bug 1966, '"Collapse all threads" slower than 
+               "Expand all threads"'
+
 2009-07-28 [colin]     3.7.2cvs12
 
        * src/common/session.c
index 94a0563..e0b73e7 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.1.2.23 -r 1.1.2.24 manual/plugins.xml;  cvs diff -u -r 1.105.2.154 -r 1.105.2.155 src/prefs_account.c;  ) > 3.7.2cvs10.patchset
 ( cvs diff -u -r 1.1.2.24 -r 1.1.2.25 manual/plugins.xml;  ) > 3.7.2cvs11.patchset
 ( cvs diff -u -r 1.23.2.23 -r 1.23.2.24 src/common/session.c;  ) > 3.7.2cvs12.patchset
+( cvs diff -u -r 1.395.2.414 -r 1.395.2.415 src/summaryview.c;  ) > 3.7.2cvs13.patchset
index 2de662c..f010a6e 100644 (file)
@@ -12,7 +12,7 @@ MINOR_VERSION=7
 MICRO_VERSION=2
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=12
+EXTRA_VERSION=13
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index 41ea23a..ca66a76 100644 (file)
@@ -5374,6 +5374,8 @@ void summary_collapse_threads(SummaryView *summaryview)
        GtkCMCTreeNode *node = NULL;
        GtkCMCTreeNode *focus_node = GTK_CMCTREE_NODE (g_list_nth (GTK_CMCLIST(ctree)->row_list, GTK_CMCLIST(ctree)->focus_row));
 
+       g_signal_handlers_block_by_func(G_OBJECT(ctree),
+                                      G_CALLBACK(summary_tree_collapsed), summaryview);
        summary_freeze(summaryview);
        GTK_SCTREE(ctree)->sorting = TRUE;
 
@@ -5384,8 +5386,10 @@ void summary_collapse_threads(SummaryView *summaryview)
        gtk_sctree_select(GTK_SCTREE(ctree), focus_node);
        node = GTK_CMCTREE_NODE(GTK_CMCLIST(ctree)->row_list);
        while (node) {
-               if (GTK_CMCTREE_ROW(node)->children)
+               if (GTK_CMCTREE_ROW(node)->children) {
                        gtk_cmctree_collapse(ctree, node);
+                       summary_set_row_marks(summaryview, node);
+               }
                node = GTK_CMCTREE_ROW(node)->sibling;
        }
 
@@ -5396,6 +5400,8 @@ void summary_collapse_threads(SummaryView *summaryview)
        GTK_SCTREE(ctree)->anchor_row =
                        gtk_cmctree_node_nth(ctree, GTK_CMCLIST(ctree)->focus_row);
        summary_thaw(summaryview);
+       g_signal_handlers_unblock_by_func(G_OBJECT(ctree),
+                                        G_CALLBACK(summary_tree_collapsed), summaryview);
        
        summaryview->thread_collapsed = TRUE;