aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/table/e-tree-table-adapter.c
diff options
context:
space:
mode:
authorNot Zed <NotZed@Ximian.com>2003-02-06 10:17:14 +0800
committerMichael Zucci <zucchi@src.gnome.org>2003-02-06 10:17:14 +0800
commit749c7626eb82cd791b8278b00f8b5b350d74114b (patch)
tree92fea709fd01c8ca5188bf70fa7db5f99ffca737 /widgets/table/e-tree-table-adapter.c
parent5580721e827e10cdf3f9a8319d58246811a84836 (diff)
downloadgsoc2013-evolution-749c7626eb82cd791b8278b00f8b5b350d74114b.tar.gz
gsoc2013-evolution-749c7626eb82cd791b8278b00f8b5b350d74114b.tar.zst
gsoc2013-evolution-749c7626eb82cd791b8278b00f8b5b350d74114b.zip
use the parent path to find the parent node rather than the row, which is
2003-02-06 Not Zed <NotZed@Ximian.com> * e-tree-table-adapter.c (delete_node): use the parent path to find the parent node rather than the row, which is not valid for the root node, which still needs its visible child count updated. svn path=/trunk/; revision=19797
Diffstat (limited to 'widgets/table/e-tree-table-adapter.c')
-rw-r--r--widgets/table/e-tree-table-adapter.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/widgets/table/e-tree-table-adapter.c b/widgets/table/e-tree-table-adapter.c
index 16411c19ec..60e228406c 100644
--- a/widgets/table/e-tree-table-adapter.c
+++ b/widgets/table/e-tree-table-adapter.c
@@ -269,6 +269,7 @@ delete_node(ETreeTableAdapter *etta, ETreePath parent, ETreePath path)
int parent_row = get_row(etta, parent);
int row = get_row(etta, path);
GNode *gnode = lookup_gnode(etta, path);
+ GNode *parent_gnode = lookup_gnode(etta, parent);
e_table_model_pre_change(E_TABLE_MODEL(etta));
@@ -283,10 +284,10 @@ delete_node(ETreeTableAdapter *etta, ETreePath parent, ETreePath path)
move_map_elements(etta, row, row + to_remove, etta->priv->n_map - row - to_remove);
resize_map(etta, etta->priv->n_map - to_remove);
- if (parent_row != -1) {
- node_t *parent_node = etta->priv->map_table[parent_row];
- GNode *parent_gnode = lookup_gnode(etta, parent);
+ if (parent_gnode != NULL) {
+ node_t *parent_node = parent_gnode->data;
gboolean expandable = e_tree_model_node_is_expandable(etta->priv->source, parent);
+
update_child_counts(parent_gnode, - to_remove);
if (parent_node->expandable != expandable) {
e_table_model_pre_change(E_TABLE_MODEL(etta));