if the deleted node was "below" this path, then do not unref all nodes

Fri Apr 26 21:58:16 2002  Kristian Rietveld  <kris@gtk.org>

        * gtk/gtktreemodel.c (gtk_tree_row_ref_deleted_callback): if the
        deleted node was "below" this path, then do not unref all nodes
        between the deleted parent and the node this rowref is pointing too
        (see added comment in gtk_tree_row_ref_deleted_callback),
        (fixes #77977)
This commit is contained in:
Kristian Rietveld 2002-04-26 19:55:14 +00:00 committed by Kristian Rietveld
parent deb549090a
commit 873e9ce4b8
7 changed files with 56 additions and 1 deletions

View File

@ -1,3 +1,11 @@
Fri Apr 26 21:58:16 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreemodel.c (gtk_tree_row_ref_deleted_callback): if the
deleted node was "below" this path, then do not unref all nodes
between the deleted parent and the node this rowref is pointing too
(see added comment in gtk_tree_row_ref_deleted_callback),
(fixes #77977)
2002-04-26 Sven Neumann <sven@gimp.org>
* tests/testtreecolumns.c

View File

@ -1,3 +1,11 @@
Fri Apr 26 21:58:16 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreemodel.c (gtk_tree_row_ref_deleted_callback): if the
deleted node was "below" this path, then do not unref all nodes
between the deleted parent and the node this rowref is pointing too
(see added comment in gtk_tree_row_ref_deleted_callback),
(fixes #77977)
2002-04-26 Sven Neumann <sven@gimp.org>
* tests/testtreecolumns.c

View File

@ -1,3 +1,11 @@
Fri Apr 26 21:58:16 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreemodel.c (gtk_tree_row_ref_deleted_callback): if the
deleted node was "below" this path, then do not unref all nodes
between the deleted parent and the node this rowref is pointing too
(see added comment in gtk_tree_row_ref_deleted_callback),
(fixes #77977)
2002-04-26 Sven Neumann <sven@gimp.org>
* tests/testtreecolumns.c

View File

@ -1,3 +1,11 @@
Fri Apr 26 21:58:16 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreemodel.c (gtk_tree_row_ref_deleted_callback): if the
deleted node was "below" this path, then do not unref all nodes
between the deleted parent and the node this rowref is pointing too
(see added comment in gtk_tree_row_ref_deleted_callback),
(fixes #77977)
2002-04-26 Sven Neumann <sven@gimp.org>
* tests/testtreecolumns.c

View File

@ -1,3 +1,11 @@
Fri Apr 26 21:58:16 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreemodel.c (gtk_tree_row_ref_deleted_callback): if the
deleted node was "below" this path, then do not unref all nodes
between the deleted parent and the node this rowref is pointing too
(see added comment in gtk_tree_row_ref_deleted_callback),
(fixes #77977)
2002-04-26 Sven Neumann <sven@gimp.org>
* tests/testtreecolumns.c

View File

@ -1,3 +1,11 @@
Fri Apr 26 21:58:16 2002 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreemodel.c (gtk_tree_row_ref_deleted_callback): if the
deleted node was "below" this path, then do not unref all nodes
between the deleted parent and the node this rowref is pointing too
(see added comment in gtk_tree_row_ref_deleted_callback),
(fixes #77977)
2002-04-26 Sven Neumann <sven@gimp.org>
* tests/testtreecolumns.c

View File

@ -1368,7 +1368,14 @@ gtk_tree_row_ref_deleted_callback (GObject *object,
/* We know it affects us. */
if (path->indices[i] == reference->path->indices[i])
{
gtk_tree_row_reference_unref_path (reference->path, reference->model, reference->path->depth - 1);
if (reference->path->depth > path->depth)
/* some parent was deleted, trying to unref any node
* between the deleted parent and the node the reference
* is pointing to is bad, as those nodes are already gone.
*/
gtk_tree_row_reference_unref_path (reference->path, reference->model, path->depth - 1);
else
gtk_tree_row_reference_unref_path (reference->path, reference->model, reference->path->depth - 1);
gtk_tree_path_free (reference->path);
reference->path = NULL;
}