aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--ChangeLog.ja5
-rw-r--r--src/summaryview.c41
3 files changed, 27 insertions, 24 deletions
diff --git a/ChangeLog b/ChangeLog
index 5e1eb515..f37f4f64 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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))) {