diff options
author | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2005-05-16 14:46:53 +0000 |
---|---|---|
committer | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2005-05-16 14:46:53 +0000 |
commit | 5f373602ea6c867537b4a480e2777ac8467a4dea (patch) | |
tree | affc237877269b6fac788a5e1ec7068374d3786d /src | |
parent | 3cc2910a1aeb1dd0c4b048fb92a96407f802a5f4 (diff) |
forgot to unset SummaryView::selected on empty selection.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@259 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'src')
-rw-r--r-- | src/summaryview.c | 41 |
1 files changed, 17 insertions, 24 deletions
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))) { |