aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-07-15 06:25:17 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-07-15 06:25:17 +0000
commitec370ab724dc9d6dc11550c29323d039dc8fe2e0 (patch)
tree2967942c1117df457797a63a8e2bc57c397fab0b
parentefd58f003e08eb948ad552aa5e4868c6fb66f5ad (diff)
select correct row after execution on summary when sorting is enabled.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@434 ee746299-78ed-0310-b773-934348b2243d
-rw-r--r--ChangeLog5
-rw-r--r--ChangeLog.ja5
-rw-r--r--src/summaryview.c12
3 files changed, 20 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index c29ac9c9..ace25cc7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-07-15
+
+ * src/summaryview.c: summary_modify_threads(): select correct row
+ when sorting is enabled.
+
2005-07-14
* version 2.0.0beta6
diff --git a/ChangeLog.ja b/ChangeLog.ja
index 2bb2bdca..a3dfb23a 100644
--- a/ChangeLog.ja
+++ b/ChangeLog.ja
@@ -1,3 +1,8 @@
+2005-07-15
+
+ * src/summaryview.c: summary_modify_threads(): ソートが有効になって
+ いる場合に正しい行を選択するようにした。
+
2005-07-14
* version 2.0.0beta6
diff --git a/src/summaryview.c b/src/summaryview.c
index 23c6e0ad..e0661ea3 100644
--- a/src/summaryview.c
+++ b/src/summaryview.c
@@ -3556,8 +3556,9 @@ static void summary_modify_node(SummaryView *summaryview, GtkTreeIter *iter,
static void summary_modify_threads(SummaryView *summaryview)
{
GtkTreeModel *model = GTK_TREE_MODEL(summaryview->store);
- GtkTreeIter iter, next, selected;
+ GtkTreeIter iter, next, selected, new_selected;
GtkTreeIter *selected_p = NULL;
+ GtkTreePath *prev_path = NULL;
gboolean valid, has_selection;
summary_lock(summaryview);
@@ -3570,6 +3571,8 @@ static void summary_modify_threads(SummaryView *summaryview)
has_selection = gtkut_tree_row_reference_get_iter
(model, summaryview->selected, &selected);
if (has_selection) {
+ prev_path = gtk_tree_row_reference_get_path
+ (summaryview->selected);
if (summary_find_nearest_msg(summaryview, &next, &selected)) {
selected = next;
selected_p = &selected;
@@ -3593,8 +3596,13 @@ static void summary_modify_threads(SummaryView *summaryview)
summary_selection_list_free(summaryview);
if (has_selection &&
- !gtk_tree_row_reference_valid(summaryview->selected))
+ !gtk_tree_row_reference_valid(summaryview->selected)) {
+ if (prev_path &&
+ gtk_tree_model_get_iter(model, &new_selected, prev_path))
+ selected = new_selected;
summary_select_row(summaryview, &selected, FALSE, FALSE);
+ }
+ gtk_tree_path_free(prev_path);
debug_print("done.\n");