diff options
author | Owen Taylor <otaylor@src.gnome.org> | 1998-05-01 04:23:59 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 1998-05-01 04:23:59 +0000 |
commit | 05bc6a5b3639869eee69cfa4a2db8b8968b247cb (patch) | |
tree | 58bad8f48d24c88dfc95206defe79dd0464256f6 /gtk/gtktree.c | |
parent | e909f843f8e2949144e624ce1af4fd1737396f62 (diff) | |
download | gtk+-05bc6a5b3639869eee69cfa4a2db8b8968b247cb.tar.gz |
Merged changes from gtk-1-0. Check ChangeLog for details.
Diffstat (limited to 'gtk/gtktree.c')
-rw-r--r-- | gtk/gtktree.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/gtk/gtktree.c b/gtk/gtktree.c index 32352a3bd7..faed8e60ef 100644 --- a/gtk/gtktree.c +++ b/gtk/gtktree.c @@ -710,7 +710,20 @@ gtk_tree_remove_items (GtkTree *tree, g_print("+ gtk_tree_remove_items [ tree %#x items list %#x ]\n", (int)tree, (int)items); #endif /* TREE_DEBUG */ - root_tree = GTK_TREE(GTK_TREE_ROOT_TREE(tree)); + /* We may not yet be mapped, so we actively have to find our + * root tree + */ + if (tree->root_tree) + root_tree = tree->root_tree; + else + { + GtkWidget *tmp = GTK_WIDGET (tree); + while (tmp->parent && GTK_IS_TREE (tmp->parent)) + tmp = tmp->parent; + + root_tree = GTK_TREE (tmp); + } + tmp_list = items; selected_widgets = NULL; sorted_list = NULL; @@ -779,9 +792,9 @@ gtk_tree_remove_items (GtkTree *tree, #endif /* TREE_DEBUG */ } - /* remove this item of his real parent */ + /* remove this item from its real parent */ #ifdef TREE_DEBUG - g_print("* remove widget of his owner tree\n"); + g_print("* remove widget from its owner tree\n"); #endif /* TREE_DEBUG */ real_tree->children = g_list_remove (real_tree->children, widget); |