diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | ChangeLog.ja | 5 | ||||
-rw-r--r-- | src/summaryview.c | 41 |
3 files changed, 27 insertions, 24 deletions
@@ -1,5 +1,10 @@ 2005-05-16 + * src/summaryview.c: summary_selection_changed(): forgot to unset + SummaryView::selected on empty selection. + +2005-05-16 + * src/summaryview.c: fixed selection problem after execution. * src/gtkutils.c: gtkut_tree_model_find_by_column_data(): also compare start node. diff --git a/ChangeLog.ja b/ChangeLog.ja index 1d607131..2a22198d 100644 --- a/ChangeLog.ja +++ b/ChangeLog.ja @@ -1,5 +1,10 @@ 2005-05-16 + * src/summaryview.c: summary_selection_changed(): selection が空の + ときに SummaryView::selected を未設定にするのを忘れていたのを修正。 + +2005-05-16 + * src/summaryview.c: 実行後の selection 問題を修正。 * src/gtkutils.c: gtkut_tree_model_find_by_column_data(): 開始ノード も比較するようにした。 diff --git a/src/summaryview.c b/src/summaryview.c index 12926aeb..b9f82e81 100644 --- a/src/summaryview.c +++ b/src/summaryview.c @@ -4191,23 +4191,29 @@ static void summary_selection_changed(GtkTreeSelection *selection, SummaryView *summaryview) { GtkTreeModel *model = GTK_TREE_MODEL(summaryview->store); - MsgInfo *msginfo = NULL; GtkTreeIter iter; GtkTreePath *path; GList *list; + gboolean single_selection = FALSE; summary_status_show(summaryview); - if (gtk_tree_selection_count_selected_rows(selection) != 1) { - list = gtk_tree_selection_get_selected_rows(selection, NULL); - if (list) { - path = (GtkTreePath *)list->data; - gtk_tree_row_reference_free(summaryview->selected); - summaryview->selected = - gtk_tree_row_reference_new(model, path); - g_list_foreach(list, (GFunc)gtk_tree_path_free, NULL); - g_list_free(list); - } + list = gtk_tree_selection_get_selected_rows(selection, NULL); + + gtk_tree_row_reference_free(summaryview->selected); + if (list) { + if (list->next == NULL) + single_selection = TRUE; + path = (GtkTreePath *)list->data; + gtk_tree_model_get_iter(model, &iter, path); + summaryview->selected = + gtk_tree_row_reference_new(model, path); + g_list_foreach(list, (GFunc)gtk_tree_path_free, NULL); + g_list_free(list); + } else + summaryview->selected = NULL; + + if (!single_selection) { summaryview->display_msg = FALSE; if (summaryview->displayed && prefs_common.always_show_msg) { messageview_clear(summaryview->messageview); @@ -4219,19 +4225,6 @@ static void summary_selection_changed(GtkTreeSelection *selection, return; } - list = gtk_tree_selection_get_selected_rows(selection, NULL); - path = (GtkTreePath *)list->data; - g_list_free(list); - gtk_tree_model_get_iter(model, &iter, path); - - gtk_tree_row_reference_free(summaryview->selected); - summaryview->selected = gtk_tree_row_reference_new(model, path); - - gtk_tree_path_free(path); - - gtk_tree_model_get(model, &iter, S_COL_MSG_INFO, &msginfo, -1); - g_return_if_fail(msginfo != NULL); - if (summaryview->display_msg || (prefs_common.always_show_msg && messageview_is_visible(summaryview->messageview))) { |