]> Pileus Git - ~andy/gtk/commitdiff
check ->priv->cursor and ->priv->anchor rowrefs before removing
authorKristian Rietveld <kris@gtk.org>
Tue, 16 Apr 2002 15:25:27 +0000 (15:25 +0000)
committerKristian Rietveld <kristian@src.gnome.org>
Tue, 16 Apr 2002 15:25:27 +0000 (15:25 +0000)
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).

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtktreeview.c

index 6ff8656d5e3177116959c74557abddbefc50e1bf..dfa8bf3c7651fd8489c3a6312338dc8d5261ea50 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
index 6ff8656d5e3177116959c74557abddbefc50e1bf..dfa8bf3c7651fd8489c3a6312338dc8d5261ea50 100644 (file)
@@ -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
index 6ff8656d5e3177116959c74557abddbefc50e1bf..dfa8bf3c7651fd8489c3a6312338dc8d5261ea50 100644 (file)
@@ -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
index 6ff8656d5e3177116959c74557abddbefc50e1bf..dfa8bf3c7651fd8489c3a6312338dc8d5261ea50 100644 (file)
@@ -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
index 6ff8656d5e3177116959c74557abddbefc50e1bf..dfa8bf3c7651fd8489c3a6312338dc8d5261ea50 100644 (file)
@@ -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
index 6ff8656d5e3177116959c74557abddbefc50e1bf..dfa8bf3c7651fd8489c3a6312338dc8d5261ea50 100644 (file)
@@ -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
index 6e915d8d5b280e354e2226101450982c355adb16..730493a771cd3f790e21ebbb5c3f43609dd3b565 100644 (file)
@@ -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