check if tree/node are still the same after _internal_select_node. (Fixes

Thu May 29 16:01:38 2003  Kristian Rietveld  <kris@gtk.org>

	* gtk/gtktreeview.c (gtk_tree_view_real_set_cursor): check
	if tree/node are still the same after _internal_select_node.
	(Fixes #92256, reported by edscott).
This commit is contained in:
Kristian Rietveld 2003-05-29 14:06:20 +00:00 committed by Kristian Rietveld
parent c378989102
commit fcabeed616
6 changed files with 42 additions and 0 deletions

View File

@ -1,3 +1,9 @@
Thu May 29 16:01:38 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_real_set_cursor): check
if tree/node are still the same after _internal_select_node.
(Fixes #92256, reported by edscott).
Thu May 29 15:38:30 2003 Kristian Rietveld <kris@gtk.org>
Fixes #75745, reported by Richard Hult. Merged from stable.

View File

@ -1,3 +1,9 @@
Thu May 29 16:01:38 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_real_set_cursor): check
if tree/node are still the same after _internal_select_node.
(Fixes #92256, reported by edscott).
Thu May 29 15:38:30 2003 Kristian Rietveld <kris@gtk.org>
Fixes #75745, reported by Richard Hult. Merged from stable.

View File

@ -1,3 +1,9 @@
Thu May 29 16:01:38 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_real_set_cursor): check
if tree/node are still the same after _internal_select_node.
(Fixes #92256, reported by edscott).
Thu May 29 15:38:30 2003 Kristian Rietveld <kris@gtk.org>
Fixes #75745, reported by Richard Hult. Merged from stable.

View File

@ -1,3 +1,9 @@
Thu May 29 16:01:38 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_real_set_cursor): check
if tree/node are still the same after _internal_select_node.
(Fixes #92256, reported by edscott).
Thu May 29 15:38:30 2003 Kristian Rietveld <kris@gtk.org>
Fixes #75745, reported by Richard Hult. Merged from stable.

View File

@ -1,3 +1,9 @@
Thu May 29 16:01:38 2003 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreeview.c (gtk_tree_view_real_set_cursor): check
if tree/node are still the same after _internal_select_node.
(Fixes #92256, reported by edscott).
Thu May 29 15:38:30 2003 Kristian Rietveld <kris@gtk.org>
Fixes #75745, reported by Richard Hult. Merged from stable.

View File

@ -9761,11 +9761,23 @@ gtk_tree_view_real_set_cursor (GtkTreeView *tree_view,
_gtk_tree_view_find_node (tree_view, path, &tree, &node);
if (tree != NULL)
{
GtkRBTree *new_tree = NULL;
GtkRBNode *new_node = NULL;
if (clear_and_select && !((state & GDK_CONTROL_MASK) == GDK_CONTROL_MASK))
_gtk_tree_selection_internal_select_node (tree_view->priv->selection,
node, tree, path,
state, FALSE);
/* We have to re-find tree and node here again, somebody might have
* cleared the node or the whole tree in the GtkTreeSelection::changed
* callback. If the nodes differ we bail out here.
*/
_gtk_tree_view_find_node (tree_view, path, &new_tree, &new_node);
if (tree != new_tree || node != new_node)
return;
if (clamp_node)
{
gtk_tree_view_clamp_node_visible (tree_view, tree, node);