Merged from stable.
Thu May 29 17:06:09 2003 Kristian Rietveld <kris@gtk.org> Merged from stable. * gtk/gtktreeview.c (check_selection_helper): new function, (gtk_tree_view_row_deleted): traverse the tree from the deleted node to see whether the selection changed, instead of just checking this node. (Fixes #107400, reported by 'Duncan').
This commit is contained in:

committed by
Kristian Rietveld

parent
c906acd086
commit
4a03ea2334
@ -1,3 +1,12 @@
|
|||||||
|
Thu May 29 17:06:09 2003 Kristian Rietveld <kris@gtk.org>
|
||||||
|
|
||||||
|
Merged from stable.
|
||||||
|
|
||||||
|
* gtk/gtktreeview.c (check_selection_helper): new function,
|
||||||
|
(gtk_tree_view_row_deleted): traverse the tree from the
|
||||||
|
deleted node to see whether the selection changed, instead of
|
||||||
|
just checking this node. (Fixes #107400, reported by 'Duncan').
|
||||||
|
|
||||||
Thu May 29 16:31:34 2003 Kristian Rietveld <kris@gtk.org>
|
Thu May 29 16:31:34 2003 Kristian Rietveld <kris@gtk.org>
|
||||||
|
|
||||||
Merged from stable.
|
Merged from stable.
|
||||||
|
@ -1,3 +1,12 @@
|
|||||||
|
Thu May 29 17:06:09 2003 Kristian Rietveld <kris@gtk.org>
|
||||||
|
|
||||||
|
Merged from stable.
|
||||||
|
|
||||||
|
* gtk/gtktreeview.c (check_selection_helper): new function,
|
||||||
|
(gtk_tree_view_row_deleted): traverse the tree from the
|
||||||
|
deleted node to see whether the selection changed, instead of
|
||||||
|
just checking this node. (Fixes #107400, reported by 'Duncan').
|
||||||
|
|
||||||
Thu May 29 16:31:34 2003 Kristian Rietveld <kris@gtk.org>
|
Thu May 29 16:31:34 2003 Kristian Rietveld <kris@gtk.org>
|
||||||
|
|
||||||
Merged from stable.
|
Merged from stable.
|
||||||
|
@ -1,3 +1,12 @@
|
|||||||
|
Thu May 29 17:06:09 2003 Kristian Rietveld <kris@gtk.org>
|
||||||
|
|
||||||
|
Merged from stable.
|
||||||
|
|
||||||
|
* gtk/gtktreeview.c (check_selection_helper): new function,
|
||||||
|
(gtk_tree_view_row_deleted): traverse the tree from the
|
||||||
|
deleted node to see whether the selection changed, instead of
|
||||||
|
just checking this node. (Fixes #107400, reported by 'Duncan').
|
||||||
|
|
||||||
Thu May 29 16:31:34 2003 Kristian Rietveld <kris@gtk.org>
|
Thu May 29 16:31:34 2003 Kristian Rietveld <kris@gtk.org>
|
||||||
|
|
||||||
Merged from stable.
|
Merged from stable.
|
||||||
|
@ -1,3 +1,12 @@
|
|||||||
|
Thu May 29 17:06:09 2003 Kristian Rietveld <kris@gtk.org>
|
||||||
|
|
||||||
|
Merged from stable.
|
||||||
|
|
||||||
|
* gtk/gtktreeview.c (check_selection_helper): new function,
|
||||||
|
(gtk_tree_view_row_deleted): traverse the tree from the
|
||||||
|
deleted node to see whether the selection changed, instead of
|
||||||
|
just checking this node. (Fixes #107400, reported by 'Duncan').
|
||||||
|
|
||||||
Thu May 29 16:31:34 2003 Kristian Rietveld <kris@gtk.org>
|
Thu May 29 16:31:34 2003 Kristian Rietveld <kris@gtk.org>
|
||||||
|
|
||||||
Merged from stable.
|
Merged from stable.
|
||||||
|
@ -1,3 +1,12 @@
|
|||||||
|
Thu May 29 17:06:09 2003 Kristian Rietveld <kris@gtk.org>
|
||||||
|
|
||||||
|
Merged from stable.
|
||||||
|
|
||||||
|
* gtk/gtktreeview.c (check_selection_helper): new function,
|
||||||
|
(gtk_tree_view_row_deleted): traverse the tree from the
|
||||||
|
deleted node to see whether the selection changed, instead of
|
||||||
|
just checking this node. (Fixes #107400, reported by 'Duncan').
|
||||||
|
|
||||||
Thu May 29 16:31:34 2003 Kristian Rietveld <kris@gtk.org>
|
Thu May 29 16:31:34 2003 Kristian Rietveld <kris@gtk.org>
|
||||||
|
|
||||||
Merged from stable.
|
Merged from stable.
|
||||||
|
@ -6332,6 +6332,19 @@ count_children_helper (GtkRBTree *tree,
|
|||||||
(*((gint *)data))++;
|
(*((gint *)data))++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
check_selection_helper (GtkRBTree *tree,
|
||||||
|
GtkRBNode *node,
|
||||||
|
gpointer data)
|
||||||
|
{
|
||||||
|
gint *value = (gint *)data;
|
||||||
|
|
||||||
|
*value = GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_SELECTED);
|
||||||
|
|
||||||
|
if (node->children && !*value)
|
||||||
|
_gtk_rbtree_traverse (node->children, node->children->root, G_POST_ORDER, check_selection_helper, data);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gtk_tree_view_row_deleted (GtkTreeModel *model,
|
gtk_tree_view_row_deleted (GtkTreeModel *model,
|
||||||
GtkTreePath *path,
|
GtkTreePath *path,
|
||||||
@ -6341,7 +6354,7 @@ gtk_tree_view_row_deleted (GtkTreeModel *model,
|
|||||||
GtkRBTree *tree;
|
GtkRBTree *tree;
|
||||||
GtkRBNode *node;
|
GtkRBNode *node;
|
||||||
GList *list;
|
GList *list;
|
||||||
gint selection_changed;
|
gint selection_changed = FALSE;
|
||||||
|
|
||||||
g_return_if_fail (path != NULL);
|
g_return_if_fail (path != NULL);
|
||||||
|
|
||||||
@ -6353,8 +6366,9 @@ gtk_tree_view_row_deleted (GtkTreeModel *model,
|
|||||||
if (tree == NULL)
|
if (tree == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* Change the selection */
|
/* check if the selection has been changed */
|
||||||
selection_changed = GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_SELECTED);
|
_gtk_rbtree_traverse (tree, node, G_POST_ORDER,
|
||||||
|
check_selection_helper, &selection_changed);
|
||||||
|
|
||||||
for (list = tree_view->priv->columns; list; list = list->next)
|
for (list = tree_view->priv->columns; list; list = list->next)
|
||||||
if (((GtkTreeViewColumn *)list->data)->visible &&
|
if (((GtkTreeViewColumn *)list->data)->visible &&
|
||||||
|
Reference in New Issue
Block a user