diff --git a/ChangeLog b/ChangeLog index 6ff8656d5e..dfa8bf3c76 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Tue Apr 16 17:28:21 2002 Kristian Rietveld + + * gtk/gtktreeview.c (gtk_tree_view_real_collapse_row): check + ->priv->cursor and ->priv->anchor rowrefs before removing + node->children from the rbtree. Also check the + ->priv->last_single_clicked and ->priv->last_single_clicked_2 rowrefs + (I think I really need to rename those two someday). + Tue Apr 16 07:53:49 2002 Tim Janik * gtk/gtkmenu.c (gtk_menu_key_press): don't install/change accelerators diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 6ff8656d5e..dfa8bf3c76 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,11 @@ +Tue Apr 16 17:28:21 2002 Kristian Rietveld + + * gtk/gtktreeview.c (gtk_tree_view_real_collapse_row): check + ->priv->cursor and ->priv->anchor rowrefs before removing + node->children from the rbtree. Also check the + ->priv->last_single_clicked and ->priv->last_single_clicked_2 rowrefs + (I think I really need to rename those two someday). + Tue Apr 16 07:53:49 2002 Tim Janik * gtk/gtkmenu.c (gtk_menu_key_press): don't install/change accelerators diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 6ff8656d5e..dfa8bf3c76 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,11 @@ +Tue Apr 16 17:28:21 2002 Kristian Rietveld + + * gtk/gtktreeview.c (gtk_tree_view_real_collapse_row): check + ->priv->cursor and ->priv->anchor rowrefs before removing + node->children from the rbtree. Also check the + ->priv->last_single_clicked and ->priv->last_single_clicked_2 rowrefs + (I think I really need to rename those two someday). + Tue Apr 16 07:53:49 2002 Tim Janik * gtk/gtkmenu.c (gtk_menu_key_press): don't install/change accelerators diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 6ff8656d5e..dfa8bf3c76 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,11 @@ +Tue Apr 16 17:28:21 2002 Kristian Rietveld + + * gtk/gtktreeview.c (gtk_tree_view_real_collapse_row): check + ->priv->cursor and ->priv->anchor rowrefs before removing + node->children from the rbtree. Also check the + ->priv->last_single_clicked and ->priv->last_single_clicked_2 rowrefs + (I think I really need to rename those two someday). + Tue Apr 16 07:53:49 2002 Tim Janik * gtk/gtkmenu.c (gtk_menu_key_press): don't install/change accelerators diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 6ff8656d5e..dfa8bf3c76 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,11 @@ +Tue Apr 16 17:28:21 2002 Kristian Rietveld + + * gtk/gtktreeview.c (gtk_tree_view_real_collapse_row): check + ->priv->cursor and ->priv->anchor rowrefs before removing + node->children from the rbtree. Also check the + ->priv->last_single_clicked and ->priv->last_single_clicked_2 rowrefs + (I think I really need to rename those two someday). + Tue Apr 16 07:53:49 2002 Tim Janik * gtk/gtkmenu.c (gtk_menu_key_press): don't install/change accelerators diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 6ff8656d5e..dfa8bf3c76 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,11 @@ +Tue Apr 16 17:28:21 2002 Kristian Rietveld + + * gtk/gtktreeview.c (gtk_tree_view_real_collapse_row): check + ->priv->cursor and ->priv->anchor rowrefs before removing + node->children from the rbtree. Also check the + ->priv->last_single_clicked and ->priv->last_single_clicked_2 rowrefs + (I think I really need to rename those two someday). + Tue Apr 16 07:53:49 2002 Tim Janik * gtk/gtkmenu.c (gtk_menu_key_press): don't install/change accelerators diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index 6e915d8d5b..730493a771 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -8846,6 +8846,53 @@ gtk_tree_view_real_collapse_row (GtkTreeView *tree_view, gtk_tree_path_free (child_path); } + if (gtk_tree_row_reference_valid (tree_view->priv->cursor)) + { + GtkTreePath *cursor_path = gtk_tree_row_reference_get_path (tree_view->priv->cursor); + + if (gtk_tree_path_is_ancestor (path, cursor_path)) + { + gtk_tree_row_reference_free (tree_view->priv->cursor); + tree_view->priv->cursor = gtk_tree_row_reference_new_proxy (G_OBJECT (tree_view), + tree_view->priv->model, + path); + } + gtk_tree_path_free (cursor_path); + } + + if (gtk_tree_row_reference_valid (tree_view->priv->anchor)) + { + GtkTreePath *anchor_path = gtk_tree_row_reference_get_path (tree_view->priv->anchor); + if (gtk_tree_path_is_ancestor (path, anchor_path)) + { + gtk_tree_row_reference_free (tree_view->priv->anchor); + tree_view->priv->anchor = NULL; + } + gtk_tree_path_free (anchor_path); + } + + if (gtk_tree_row_reference_valid (tree_view->priv->last_single_clicked)) + { + GtkTreePath *lsc = gtk_tree_row_reference_get_path (tree_view->priv->last_single_clicked); + if (gtk_tree_path_is_ancestor (path, lsc)) + { + gtk_tree_row_reference_free (tree_view->priv->last_single_clicked); + tree_view->priv->last_single_clicked = NULL; + } + gtk_tree_path_free (lsc); + } + + if (gtk_tree_row_reference_valid (tree_view->priv->last_single_clicked_2)) + { + GtkTreePath *lsc = gtk_tree_row_reference_get_path (tree_view->priv->last_single_clicked_2); + if (gtk_tree_path_is_ancestor (path, lsc)) + { + gtk_tree_row_reference_free (tree_view->priv->last_single_clicked_2); + tree_view->priv->last_single_clicked_2 = NULL; + } + gtk_tree_path_free (lsc); + } + if (gtk_tree_view_unref_and_check_selection_tree (tree_view, node->children)) { _gtk_rbtree_remove (node->children); @@ -8882,32 +8929,6 @@ gtk_tree_view_real_collapse_row (GtkTreeView *tree_view, gtk_widget_queue_resize (GTK_WIDGET (tree_view)); } - if (gtk_tree_row_reference_valid (tree_view->priv->cursor)) - { - GtkTreePath *cursor_path = gtk_tree_row_reference_get_path (tree_view->priv->cursor); - - if (gtk_tree_path_is_ancestor (path, cursor_path)) - { - gtk_tree_row_reference_free (tree_view->priv->cursor); - tree_view->priv->cursor = gtk_tree_row_reference_new_proxy (G_OBJECT (tree_view), - tree_view->priv->model, - path); - } - gtk_tree_path_free (cursor_path); - } - - if (gtk_tree_row_reference_valid (tree_view->priv->anchor)) - { - GtkTreePath *anchor_path = gtk_tree_row_reference_get_path (tree_view->priv->anchor); - if (gtk_tree_path_is_ancestor (path, anchor_path)) - { - gtk_tree_row_reference_free (tree_view->priv->anchor); - tree_view->priv->anchor = NULL; - } - gtk_tree_path_free (anchor_path); - - } - g_signal_emit (G_OBJECT (tree_view), tree_view_signals[ROW_COLLAPSED], 0, &iter, path); /* now that we've collapsed all rows, we want to try to set the prelight