summaryrefslogtreecommitdiff
path: root/gtk/gtktree.c
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@src.gnome.org>1998-05-01 04:23:59 +0000
committerOwen Taylor <otaylor@src.gnome.org>1998-05-01 04:23:59 +0000
commit05bc6a5b3639869eee69cfa4a2db8b8968b247cb (patch)
tree58bad8f48d24c88dfc95206defe79dd0464256f6 /gtk/gtktree.c
parente909f843f8e2949144e624ce1af4fd1737396f62 (diff)
downloadgtk+-05bc6a5b3639869eee69cfa4a2db8b8968b247cb.tar.gz
Merged changes from gtk-1-0. Check ChangeLog for details.
Diffstat (limited to 'gtk/gtktree.c')
-rw-r--r--gtk/gtktree.c19
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);