From c4bc2ab814a86a59d840cf76a0df87053482f5a2 Mon Sep 17 00:00:00 2001 From: Colin Leroy Date: Wed, 9 Oct 2002 10:22:03 +0000 Subject: [PATCH] anchor row and multiple selection fixes --- ChangeLog.claws | 9 +++++++++ configure.in | 2 +- src/gtksctree.c | 9 +++++++++ src/gtksctree.h | 3 +-- src/summaryview.c | 16 +++++++++++----- 5 files changed, 31 insertions(+), 8 deletions(-) diff --git a/ChangeLog.claws b/ChangeLog.claws index 1cf57dc2e..e8d2d2deb 100644 --- a/ChangeLog.claws +++ b/ChangeLog.claws @@ -1,3 +1,12 @@ +2002-10-09 [colin] 0.8.5claws5 + + * src/gtksctree.[ch] + Fix range_select + Add gtk_sctree_reanchor() + * src/summaryview.c + Use gtk_sctree_reanchor() - better fix for + bug 60413 + 2002-10-09 [colin] 0.8.5claws4 * src/summaryview.c diff --git a/configure.in b/configure.in index 166f2e516..bcd56b462 100644 --- a/configure.in +++ b/configure.in @@ -11,7 +11,7 @@ MINOR_VERSION=8 MICRO_VERSION=5 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=claws4 +EXTRA_VERSION=claws5 VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION dnl set $target diff --git a/src/gtksctree.c b/src/gtksctree.c index 49145180d..4231d11bd 100644 --- a/src/gtksctree.c +++ b/src/gtksctree.c @@ -202,6 +202,7 @@ select_range (GtkSCTree *sctree, gint row) if (row < prev_row) { min = row; max = prev_row; + GTK_CLIST(sctree)->focus_row = max; } else { min = prev_row; max = row; @@ -1034,3 +1035,11 @@ gtk_ctree_last_visible (GtkCTree *ctree, return gtk_ctree_last_visible (ctree, work); } + +void gtk_sctree_reanchor (GtkSCTree *sctree, GtkCTreeNode *node) +{ + g_return_if_fail (sctree != NULL); + g_return_if_fail (node != NULL); + sctree->anchor_row = node; + +} diff --git a/src/gtksctree.h b/src/gtksctree.h index e463f3acf..64b27ff4c 100644 --- a/src/gtksctree.h +++ b/src/gtksctree.h @@ -69,7 +69,6 @@ void gtk_sctree_sort_node (GtkCTree *ctree, GtkCTreeNode *node); void gtk_sctree_sort_recursive (GtkCTree *ctree, GtkCTreeNode *node); - - +void gtk_sctree_reanchor (GtkSCTree *sctree, GtkCTreeNode *node); #endif /* __GTK_SCTREE_H__ */ diff --git a/src/summaryview.c b/src/summaryview.c index 80b4c6587..ed655f171 100644 --- a/src/summaryview.c +++ b/src/summaryview.c @@ -2455,6 +2455,12 @@ void summary_step(SummaryView *summaryview, GtkScrollType type) gtk_signal_emit_by_name(GTK_OBJECT(ctree), "scroll_vertical", type, 0.0); + + if(summaryview->selected) { + gtk_sctree_reanchor (GTK_SCTREE(ctree), summaryview->selected); + } + + } void summary_toggle_view(SummaryView *summaryview) @@ -2952,11 +2958,11 @@ void summary_delete(SummaryView *summaryview) summary_step(summaryview, GTK_SCROLL_STEP_FORWARD); else if (sel_last && node == GTK_CTREE_NODE_PREV(sel_last)) summary_step(summaryview, GTK_SCROLL_STEP_BACKWARD); - - summary_select_node - (summaryview, node, - messageview_is_visible(summaryview->messageview), - FALSE); + else + summary_select_node + (summaryview, node, + messageview_is_visible(summaryview->messageview), + FALSE); } if (prefs_common.immediate_exec || item->stype == F_TRASH) -- 2.25.1