summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorJonathan Blandford <jrb@gnome.org>2002-06-08 06:48:27 +0000
committerJonathan Blandford <jrb@src.gnome.org>2002-06-08 06:48:27 +0000
commit79c202b5060c0006f557e2462b34d5a6d60b3c30 (patch)
tree30e4a3812f482aefb9aaa3cfe44bbe1738dd10f3 /gtk
parenta68df0b2e4caada907eca339c11eb19e31b411c1 (diff)
downloadgtk+-79c202b5060c0006f557e2462b34d5a6d60b3c30.tar.gz
Fix sizing bug.
Fri Jun 7 23:11:42 2002 Jonathan Blandford <jrb@gnome.org> * gtk/gtktreeview.c (gtk_tree_view_real_expand_row): Fix sizing bug. * docs/reference/gtk/tmpl/gtkbutton.sgml: Remove ^M's. Not sure why all the docs updated.
Diffstat (limited to 'gtk')
-rw-r--r--gtk/gtktreeview.c34
1 files changed, 32 insertions, 2 deletions
diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c
index 54ddd15c27..cff42ce7af 100644
--- a/gtk/gtktreeview.c
+++ b/gtk/gtktreeview.c
@@ -8852,9 +8852,9 @@ gtk_tree_view_real_expand_row (GtkTreeView *tree_view,
GtkTreeIter temp;
gboolean expand;
-
if (node->children && !open_all)
- return TRUE;
+ return FALSE;
+
if (! GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_PARENT))
return FALSE;
@@ -8862,6 +8862,36 @@ gtk_tree_view_real_expand_row (GtkTreeView *tree_view,
if (! gtk_tree_model_iter_has_child (tree_view->priv->model, &iter))
return FALSE;
+
+ if (node->children && open_all)
+ {
+ gboolean retval = FALSE;
+ GtkTreePath *tmp_path = gtk_tree_path_copy (path);
+
+ gtk_tree_path_append_index (tmp_path, 0);
+ tree = node->children;
+ node = tree->root;
+ while (node->left != tree->nil)
+ node = node->left;
+ /* try to expand the children */
+ do
+ {
+ gboolean t;
+ t = gtk_tree_view_real_expand_row (tree_view, tmp_path, tree, node,
+ TRUE, animate);
+ if (t)
+ retval = TRUE;
+
+ gtk_tree_path_next (tmp_path);
+ node = _gtk_rbtree_next (tree, node);
+ }
+ while (node != NULL);
+
+ gtk_tree_path_free (tmp_path);
+
+ return retval;
+ }
+
g_signal_emit (G_OBJECT (tree_view), tree_view_signals[TEST_EXPAND_ROW], 0, &iter, path, &expand);
if (expand)