diff --git a/ChangeLog b/ChangeLog index faa63b5cbd68a42e0b09c81e32a08ccbea15ecb0..59175ee84c1e4bada4dc233b4b2df2c05f59b300 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2005-10-24 Kristian Rietveld <kris@gtk.org> + + * gtk/gtktreemodelsort.c (gtk_tree_model_sort_row_inserted): emitting + row-has-child-toggled when the level is not in the cache does not + make sense. (This bug probably crept in during the early stages + of GtkTreeModelSort when there wasn't a correct row-has-child-toggled + implementation yet), + (gtk_tree_model_sort_real_unref_node): only get the child iter + when we will actually also use it. + 2005-10-22 Michael Natterer <mitch@imendio.com> * gtk/gtktreeview.c (gtk_tree_view_scroll_to_cell): check for the diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index faa63b5cbd68a42e0b09c81e32a08ccbea15ecb0..59175ee84c1e4bada4dc233b4b2df2c05f59b300 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,13 @@ +2005-10-24 Kristian Rietveld <kris@gtk.org> + + * gtk/gtktreemodelsort.c (gtk_tree_model_sort_row_inserted): emitting + row-has-child-toggled when the level is not in the cache does not + make sense. (This bug probably crept in during the early stages + of GtkTreeModelSort when there wasn't a correct row-has-child-toggled + implementation yet), + (gtk_tree_model_sort_real_unref_node): only get the child iter + when we will actually also use it. + 2005-10-22 Michael Natterer <mitch@imendio.com> * gtk/gtktreeview.c (gtk_tree_view_scroll_to_cell): check for the diff --git a/gtk/gtktreemodelsort.c b/gtk/gtktreemodelsort.c index ac32fc4110f3fd06861ff4c11c0ec16a56510af2..20b0f53239a5567d765dca5a8d5495e2a6368684 100644 --- a/gtk/gtktreemodelsort.c +++ b/gtk/gtktreemodelsort.c @@ -700,22 +700,6 @@ gtk_tree_model_sort_row_inserted (GtkTreeModel *s_model, if (!elt->children) { - GtkTreePath *tmppath; - GtkTreeIter tmpiter; - - tmpiter.stamp = tree_model_sort->stamp; - tmpiter.user_data = level; - tmpiter.user_data2 = elt; - - tmppath = gtk_tree_model_get_path (GTK_TREE_MODEL (data), &tmpiter); - if (tmppath) - { - gtk_tree_model_row_has_child_toggled (GTK_TREE_MODEL (data), - tmppath, - &tmpiter); - gtk_tree_path_free (tmppath); - } - /* not covering this signal */ goto done; } @@ -1286,7 +1270,6 @@ gtk_tree_model_sort_real_unref_node (GtkTreeModel *tree_model, gboolean propagate_unref) { GtkTreeModelSort *tree_model_sort = (GtkTreeModelSort *) tree_model; - GtkTreeIter child_iter; SortLevel *level; SortElt *elt; @@ -1294,10 +1277,13 @@ gtk_tree_model_sort_real_unref_node (GtkTreeModel *tree_model, g_return_if_fail (GTK_TREE_MODEL_SORT (tree_model)->child_model != NULL); g_return_if_fail (GTK_TREE_MODEL_SORT (tree_model)->stamp == iter->stamp); - GET_CHILD_ITER (tree_model, &child_iter, iter); - if (propagate_unref) - gtk_tree_model_unref_node (GTK_TREE_MODEL_SORT (tree_model)->child_model, &child_iter); + { + GtkTreeIter child_iter; + + GET_CHILD_ITER (tree_model, &child_iter, iter); + gtk_tree_model_unref_node (GTK_TREE_MODEL_SORT (tree_model)->child_model, &child_iter); + } level = iter->user_data; elt = iter->user_data2;