anchor row and multiple selection fixes
[claws.git] / src / gtksctree.c
index 5b216e0447517491a8b05906e7732db7c956ca05..4231d11bd3825fe7720f8bba5989240409345ced 100644 (file)
@@ -40,7 +40,6 @@ static void gtk_sctree_collapse (GtkCTree *ctree, GtkCTreeNode *node);
        
 static void tree_sort (GtkCTree *ctree, GtkCTreeNode  *node, gpointer data);
 void gtk_sctree_sort_node (GtkCTree *ctree, GtkCTreeNode *node);
-static void real_sort_list (GtkCList *clist);
 void gtk_sctree_sort_recursive (GtkCTree *ctree, GtkCTreeNode *node);
 
 static void gtk_ctree_link (GtkCTree *ctree,
@@ -203,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;
@@ -719,12 +719,6 @@ gtk_sctree_sort_recursive (GtkCTree     *ctree,
        gtk_clist_thaw (clist);
 }
 
-static void
-real_sort_list (GtkCList *clist)
-{
-       gtk_sctree_sort_recursive (GTK_CTREE (clist), NULL);
-}
-
 void
 gtk_sctree_sort_node (GtkCTree     *ctree, 
                     GtkCTreeNode *node)
@@ -1041,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;
+       
+}