aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2006-01-19 07:09:11 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2006-01-19 07:09:11 +0000
commit784fa78588cc6e01b92bb0fe8dd8177115c1810c (patch)
tree72d6037781cb9402c731cd7876362fa539a75974 /src
parent10a1648777df295073c626b1b11b096d72d9bf1c (diff)
a bit of optimization for toggling threads.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@907 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'src')
-rw-r--r--src/summaryview.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/summaryview.c b/src/summaryview.c
index 6177c86e..18184456 100644
--- a/src/summaryview.c
+++ b/src/summaryview.c
@@ -3622,6 +3622,10 @@ void summary_thread_build(SummaryView *summaryview)
STATUSBAR_PUSH(summaryview->mainwin, _("Building threads..."));
main_window_cursor_wait(summaryview->mainwin);
+ g_signal_handlers_block_matched(G_OBJECT(summaryview->treeview),
+ (GSignalMatchType)G_SIGNAL_MATCH_DATA,
+ 0, 0, NULL, NULL, summaryview);
+
selected_msg = summary_get_msginfo(summaryview, summaryview->selected);
displayed_msg = summary_get_msginfo
(summaryview, summaryview->displayed);
@@ -3703,6 +3707,10 @@ void summary_thread_build(SummaryView *summaryview)
}
}
+ g_signal_handlers_unblock_matched(G_OBJECT(summaryview->treeview),
+ (GSignalMatchType)G_SIGNAL_MATCH_DATA,
+ 0, 0, NULL, NULL, summaryview);
+
debug_print(_("done.\n"));
STATUSBAR_POP(summaryview->mainwin);
main_window_cursor_normal(summaryview->mainwin);
@@ -3765,6 +3773,10 @@ void summary_unthread(SummaryView *summaryview)
STATUSBAR_PUSH(summaryview->mainwin, _("Unthreading..."));
main_window_cursor_wait(summaryview->mainwin);
+ g_signal_handlers_block_matched(G_OBJECT(summaryview->treeview),
+ (GSignalMatchType)G_SIGNAL_MATCH_DATA,
+ 0, 0, NULL, NULL, summaryview);
+
selected_msg = summary_get_msginfo(summaryview, summaryview->selected);
displayed_msg = summary_get_msginfo
(summaryview, summaryview->displayed);
@@ -3824,6 +3836,10 @@ void summary_unthread(SummaryView *summaryview)
}
}
+ g_signal_handlers_unblock_matched(G_OBJECT(summaryview->treeview),
+ (GSignalMatchType)G_SIGNAL_MATCH_DATA,
+ 0, 0, NULL, NULL, summaryview);
+
debug_print(_("done.\n"));
STATUSBAR_POP(summaryview->mainwin);
main_window_cursor_normal(summaryview->mainwin);