aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/table/e-tree-table-adapter.c
diff options
context:
space:
mode:
authorMike Kestner <mkestner@ximian.com>2003-05-17 05:58:33 +0800
committerMike Kestner <mkestner@src.gnome.org>2003-05-17 05:58:33 +0800
commitd09737dec4c5833000afca64595e0966d88ea03b (patch)
tree88d22dec4a819d61e53133607b7c3d594b31bdf2 /widgets/table/e-tree-table-adapter.c
parent2d6fce05747fd04985f9d842491c004b54bc039b (diff)
downloadgsoc2013-evolution-d09737dec4c5833000afca64595e0966d88ea03b.tar
gsoc2013-evolution-d09737dec4c5833000afca64595e0966d88ea03b.tar.gz
gsoc2013-evolution-d09737dec4c5833000afca64595e0966d88ea03b.tar.bz2
gsoc2013-evolution-d09737dec4c5833000afca64595e0966d88ea03b.tar.lz
gsoc2013-evolution-d09737dec4c5833000afca64595e0966d88ea03b.tar.xz
gsoc2013-evolution-d09737dec4c5833000afca64595e0966d88ea03b.tar.zst
gsoc2013-evolution-d09737dec4c5833000afca64595e0966d88ea03b.zip
block the signal that got us here until we're done to stop an infinite
2003-05-16 Mike Kestner <mkestner@ximian.com> * gal-view-collection.c (view_changed): block the signal that got us here until we're done to stop an infinite recursion. Fixes 43153. 2003-05-16 Mike Kestner <mkestner@ximian.com> * e-cell-text.c (invisible_finalize): kill (ect_stop_editing): destroy the invisible, not weak_unref (e_cell_text_view_get_invisible): don't weak_ref the invisible since we own its ref. 2003-05-16 Mike Kestner <mkestner@ximian.com> * e-table-item.c (eti_event): fix a couple timer checks * e-tree-table-adapter.c (update_node): Traverse POST order so that the parent nodes are at the head of the prepended list. Don't restore expanded state to nodes that aren't in the tree any longer. Hopefully fixes #42856. svn path=/trunk/; revision=21229
Diffstat (limited to 'widgets/table/e-tree-table-adapter.c')
-rw-r--r--widgets/table/e-tree-table-adapter.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/widgets/table/e-tree-table-adapter.c b/widgets/table/e-tree-table-adapter.c
index 1fff0eb560..13635f4aa9 100644
--- a/widgets/table/e-tree-table-adapter.c
+++ b/widgets/table/e-tree-table-adapter.c
@@ -474,7 +474,7 @@ update_node(ETreeTableAdapter *etta, ETreePath path)
closure.paths = NULL;
if (gnode)
- g_node_traverse(gnode, G_IN_ORDER, G_TRAVERSE_ALL, -1, check_expanded, &closure);
+ g_node_traverse(gnode, G_POST_ORDER, G_TRAVERSE_ALL, -1, check_expanded, &closure);
if (e_tree_model_node_is_root(etta->priv->source, path))
generate_tree(etta, path);
@@ -484,7 +484,8 @@ update_node(ETreeTableAdapter *etta, ETreePath path)
}
for (l = closure.paths; l; l = l->next)
- e_tree_table_adapter_node_set_expanded (etta, l->data, !closure.expanded);
+ if (lookup_gnode(etta, l->data))
+ e_tree_table_adapter_node_set_expanded (etta, l->data, !closure.expanded);
g_slist_free(closure.paths);
}