diff options
author | Kristian Rietveld <kris@gtk.org> | 2011-10-03 21:35:21 +0200 |
---|---|---|
committer | Kristian Rietveld <kris@gtk.org> | 2011-10-03 22:59:40 +0200 |
commit | f646ed6f766cda7da8a223824eb6233a7b67e347 (patch) | |
tree | 09e457b4a609783ab7121ad0fbc0d8132fb786d5 /gtk/gtktreemodelfilter.c | |
parent | 6fdf882eb447b167133b9f7e693bb64458e3fabd (diff) | |
download | gtk+-f646ed6f766cda7da8a223824eb6233a7b67e347.tar.gz |
Fix first part of bug 659022
Push creation of path into if clause, the path cannot be created anyway
(and would be meaningless otherwise) if the parent is not visible.
Diffstat (limited to 'gtk/gtktreemodelfilter.c')
-rw-r--r-- | gtk/gtktreemodelfilter.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/gtk/gtktreemodelfilter.c b/gtk/gtktreemodelfilter.c index 9c81d68ad5..e5e4955e38 100644 --- a/gtk/gtktreemodelfilter.c +++ b/gtk/gtktreemodelfilter.c @@ -2073,17 +2073,17 @@ gtk_tree_model_filter_row_changed (GtkTreeModel *c_model, if (current_state == TRUE && requested_state == TRUE) { - /* propagate the signal; also get a path taking only visible - * nodes into account. - */ - gtk_tree_path_free (path); - path = gtk_tree_model_get_path (GTK_TREE_MODEL (filter), &iter); - level = FILTER_LEVEL (iter.user_data); elt = FILTER_ELT (iter.user_data2); if (gtk_tree_model_filter_elt_is_visible_in_target (level, elt)) { + /* propagate the signal; also get a path taking only visible + * nodes into account. + */ + gtk_tree_path_free (path); + path = gtk_tree_model_get_path (GTK_TREE_MODEL (filter), &iter); + if (level->ext_ref_count > 0) gtk_tree_model_row_changed (GTK_TREE_MODEL (filter), path, &iter); |