From cb382f6c30493da937bbc2e1b42aa6044cba5d74 Mon Sep 17 00:00:00 2001 From: Mike Kestner Date: Fri, 14 Mar 2003 23:38:34 +0000 Subject: save and restore expanded state so parents don't collapse when children 2003-03-14 Mike Kestner * e-tree-table-adapter.c (update_node): save and restore expanded state so parents don't collapse when children are added to them. (e_tree_table_adapter_node_is_expanded): guard against null nodes. svn path=/trunk/; revision=20303 --- widgets/table/e-tree-table-adapter.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'widgets') diff --git a/widgets/table/e-tree-table-adapter.c b/widgets/table/e-tree-table-adapter.c index 6e9894898e..83bbd0b57f 100644 --- a/widgets/table/e-tree-table-adapter.c +++ b/widgets/table/e-tree-table-adapter.c @@ -446,11 +446,15 @@ static void update_node(ETreeTableAdapter *etta, ETreePath path) { ETreePath parent = e_tree_model_node_get_parent(etta->priv->source, path); + gboolean expanded = e_tree_table_adapter_node_is_expanded (etta, path); delete_node(etta, parent, path); if (e_tree_model_node_is_root(etta->priv->source, path)) generate_tree(etta, path); else insert_node(etta, parent, path); + + if (expanded != e_tree_model_get_expanded_default (etta->priv->source)) + e_tree_table_adapter_node_set_expanded (etta, path, expanded); } static void @@ -1082,10 +1086,11 @@ e_tree_table_adapter_show_node (ETreeTableAdapter *etta, ETreePath path) gboolean e_tree_table_adapter_node_is_expanded (ETreeTableAdapter *etta, ETreePath path) { - if (!e_tree_model_node_is_expandable (etta->priv->source, path)) + node_t *node = get_node(etta, path); + if (!e_tree_model_node_is_expandable (etta->priv->source, path) || !node) return FALSE; - return get_node(etta, path)->expanded; + return node->expanded; } void -- cgit v1.2.3