summaryrefslogtreecommitdiff
path: root/gtk/gtktreeitem.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/gtktreeitem.c
parente909f843f8e2949144e624ce1af4fd1737396f62 (diff)
downloadgtk+-05bc6a5b3639869eee69cfa4a2db8b8968b247cb.tar.gz
Merged changes from gtk-1-0. Check ChangeLog for details.
Diffstat (limited to 'gtk/gtktreeitem.c')
-rw-r--r--gtk/gtktreeitem.c33
1 files changed, 20 insertions, 13 deletions
diff --git a/gtk/gtktreeitem.c b/gtk/gtktreeitem.c
index 6934a6a74e..3b2cb072b3 100644
--- a/gtk/gtktreeitem.c
+++ b/gtk/gtktreeitem.c
@@ -304,9 +304,6 @@ gtk_tree_item_set_subtree (GtkTreeItem *tree_item,
tree_item->subtree = subtree;
GTK_TREE(subtree)->tree_owner = GTK_WIDGET(tree_item);
- /* set root tree for selection list */
- GTK_TREE(subtree)->root_tree = GTK_TREE(GTK_WIDGET(tree_item)->parent)->root_tree;
-
/* show subtree button */
if (tree_item->pixmaps_box)
gtk_widget_show(tree_item->pixmaps_box);
@@ -994,25 +991,35 @@ gtk_tree_item_remove_subtree (GtkTreeItem* item)
g_return_if_fail (item->subtree != NULL);
if (GTK_TREE (item->subtree)->children)
- gtk_tree_remove_items (GTK_TREE (item->subtree),
- GTK_TREE (item->subtree)->children);
-
+ {
+ /* The following call will remove the children and call
+ * gtk_tree_item_remove_subtree() again. So we are done.
+ */
+ gtk_tree_remove_items (GTK_TREE (item->subtree),
+ GTK_TREE (item->subtree)->children);
+ return;
+ }
+
if (GTK_WIDGET_MAPPED (item->subtree))
gtk_widget_unmap (item->subtree);
-
+
gtk_widget_unparent (item->subtree);
if (item->pixmaps_box)
gtk_widget_hide (item->pixmaps_box);
item->subtree = NULL;
- item->expanded = FALSE;
- if (item->pixmaps_box)
+
+ if (item->expanded)
{
- gtk_container_remove (GTK_CONTAINER (item->pixmaps_box),
- item->minus_pix_widget);
- gtk_container_add (GTK_CONTAINER (item->pixmaps_box),
- item->plus_pix_widget);
+ item->expanded = FALSE;
+ if (item->pixmaps_box)
+ {
+ gtk_container_remove (GTK_CONTAINER (item->pixmaps_box),
+ item->minus_pix_widget);
+ gtk_container_add (GTK_CONTAINER (item->pixmaps_box),
+ item->plus_pix_widget);
+ }
}
}