aboutsummaryrefslogtreecommitdiff
path: root/src/summaryview.c
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-05-16 14:46:53 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-05-16 14:46:53 +0000
commit5f373602ea6c867537b4a480e2777ac8467a4dea (patch)
treeaffc237877269b6fac788a5e1ec7068374d3786d /src/summaryview.c
parent3cc2910a1aeb1dd0c4b048fb92a96407f802a5f4 (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/summaryview.c')
-rw-r--r--src/summaryview.c41
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))) {