diff options
author | Kristian Rietveld <kris@gtk.org> | 2002-04-16 15:25:27 +0000 |
---|---|---|
committer | Kristian Rietveld <kristian@src.gnome.org> | 2002-04-16 15:25:27 +0000 |
commit | 8fbac80bc4f00b15a49061fe388fbe2366c77101 (patch) | |
tree | fd63a38368e83122ad7171baf0dc0b9b94a463f6 | |
parent | 163890cafc8a7216320ec439d2ff8086b53800ce (diff) | |
download | gdk-pixbuf-8fbac80bc4f00b15a49061fe388fbe2366c77101.tar.gz |
check ->priv->cursor and ->priv->anchor rowrefs before removing
Tue Apr 16 17:28:21 2002 Kristian Rietveld <kris@gtk.org>
* 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).
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | ChangeLog.pre-2-10 | 8 | ||||
-rw-r--r-- | ChangeLog.pre-2-2 | 8 | ||||
-rw-r--r-- | ChangeLog.pre-2-4 | 8 | ||||
-rw-r--r-- | ChangeLog.pre-2-6 | 8 | ||||
-rw-r--r-- | ChangeLog.pre-2-8 | 8 | ||||
-rw-r--r-- | gtk/gtktreeview.c | 73 |
7 files changed, 95 insertions, 26 deletions
@@ -1,3 +1,11 @@ +Tue Apr 16 17:28:21 2002 Kristian Rietveld <kris@gtk.org> + + * 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 <timj@gtk.org> * 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 6ff8656d5..dfa8bf3c7 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,11 @@ +Tue Apr 16 17:28:21 2002 Kristian Rietveld <kris@gtk.org> + + * 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 <timj@gtk.org> * 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 6ff8656d5..dfa8bf3c7 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,11 @@ +Tue Apr 16 17:28:21 2002 Kristian Rietveld <kris@gtk.org> + + * 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 <timj@gtk.org> * 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 6ff8656d5..dfa8bf3c7 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,11 @@ +Tue Apr 16 17:28:21 2002 Kristian Rietveld <kris@gtk.org> + + * 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 <timj@gtk.org> * 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 6ff8656d5..dfa8bf3c7 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,11 @@ +Tue Apr 16 17:28:21 2002 Kristian Rietveld <kris@gtk.org> + + * 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 <timj@gtk.org> * 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 6ff8656d5..dfa8bf3c7 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,11 @@ +Tue Apr 16 17:28:21 2002 Kristian Rietveld <kris@gtk.org> + + * 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 <timj@gtk.org> * gtk/gtkmenu.c (gtk_menu_key_press): don't install/change accelerators diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index 6e915d8d5..730493a77 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 |