aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--ChangeLog.ja6
-rw-r--r--src/summaryview.c9
3 files changed, 21 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index c2e307e1..62f5e694 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2005-05-19
+
+ * src/summaryview.c: summary_modify_threads(): block selection_changed
+ callback while modifying threads so that the toolbar doesn't
+ become insensitive unexpectedly.
+
2005-05-18
* src/summaryview.c: set minimum column width.
diff --git a/ChangeLog.ja b/ChangeLog.ja
index 5de8fe67..ddf7317a 100644
--- a/ChangeLog.ja
+++ b/ChangeLog.ja
@@ -1,3 +1,9 @@
+2005-05-19
+
+ * src/summaryview.c: summary_modify_threads(): スレッドの更新中に
+ ツールバーが予期せずインセンシティブにならないように
+ selection_changed コールバックをブロック。
+
2005-05-18
* src/summaryview.c: 最小カラム幅を指定。
diff --git a/src/summaryview.c b/src/summaryview.c
index 9a56ef1f..d322abec 100644
--- a/src/summaryview.c
+++ b/src/summaryview.c
@@ -2906,6 +2906,7 @@ static void summary_remove_invalid_messages(SummaryView *summaryview)
GtkTreePath *path;
gboolean valid;
+ /* get currently displayed message */
if (summaryview->displayed) {
GtkTreeIter displayed;
@@ -2930,6 +2931,7 @@ static void summary_remove_invalid_messages(SummaryView *summaryview)
if (summaryview->folder_item->threaded)
summary_modify_threads(summaryview);
+ /* update selection */
valid = gtkut_tree_row_reference_get_iter(model, summaryview->selected,
&iter);
if (valid) {
@@ -3441,6 +3443,9 @@ static void summary_modify_threads(SummaryView *summaryview)
debug_print("Modifying threads for execution...");
+ g_signal_handlers_block_by_func(summaryview->selection,
+ summary_selection_changed, summaryview);
+
has_selection = gtkut_tree_row_reference_get_iter
(model, summaryview->selected, &selected);
if (has_selection) {
@@ -3459,6 +3464,10 @@ static void summary_modify_threads(SummaryView *summaryview)
summary_modify_node(summaryview, &iter, selected_p);
}
+ g_signal_handlers_unblock_by_func(summaryview->selection,
+ summary_selection_changed,
+ summaryview);
+
if (has_selection &&
!gtk_tree_row_reference_valid(summaryview->selected))
summary_select_row(summaryview, &selected, FALSE, FALSE);