diff options
author | Mike Kestner <mkestner@ximian.com> | 2003-03-15 07:38:34 +0800 |
---|---|---|
committer | Mike Kestner <mkestner@src.gnome.org> | 2003-03-15 07:38:34 +0800 |
commit | cb382f6c30493da937bbc2e1b42aa6044cba5d74 (patch) | |
tree | f95850faa39845e7ba64f319fec864ba0f9a9747 /widgets | |
parent | 35ff6769cb500b826678ae64504befc1c9c4757e (diff) | |
download | gsoc2013-evolution-cb382f6c30493da937bbc2e1b42aa6044cba5d74.tar.gz gsoc2013-evolution-cb382f6c30493da937bbc2e1b42aa6044cba5d74.tar.zst gsoc2013-evolution-cb382f6c30493da937bbc2e1b42aa6044cba5d74.zip |
save and restore expanded state so parents don't collapse when children
2003-03-14 Mike Kestner <mkestner@ximian.com>
* 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
Diffstat (limited to 'widgets')
-rw-r--r-- | widgets/table/e-tree-table-adapter.c | 9 |
1 files changed, 7 insertions, 2 deletions
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 |