emitting row-has-child-toggled when the level is not in the cache does not

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.
This commit is contained in:
Kristian Rietveld 2005-10-24 19:01:36 +00:00 committed by Kristian Rietveld
parent 890f4a1789
commit 3fe6e98689
3 changed files with 26 additions and 20 deletions

View File

@ -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

View File

@ -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

View File

@ -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;