aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/table
diff options
context:
space:
mode:
authorChristopher James Lahey <clahey@ximian.com>2001-11-06 03:50:35 +0800
committerChris Lahey <clahey@src.gnome.org>2001-11-06 03:50:35 +0800
commit76d416305f74670cebaaaa639f39554b77cbe3e0 (patch)
tree3eaeef074662c9d73bcf688dddbeb3fc79639760 /widgets/table
parent115c8ef7a383b0b4be866192287301f56df540d2 (diff)
downloadgsoc2013-evolution-76d416305f74670cebaaaa639f39554b77cbe3e0.tar.gz
gsoc2013-evolution-76d416305f74670cebaaaa639f39554b77cbe3e0.tar.zst
gsoc2013-evolution-76d416305f74670cebaaaa639f39554b77cbe3e0.zip
We should only pre_change here if frozen = 0, otherwise we'll leak
2001-11-03 Christopher James Lahey <clahey@ximian.com> * e-tree-memory.c (e_tree_memory_freeze): We should only pre_change here if frozen = 0, otherwise we'll leak pre_changes. Helps fix Ximian bug #14422. * e-tree-sorted.c (ets_proxy_node_data_changed, ets_proxy_node_col_changed): Send a no_change signal here if given a NULL path. Helps fix Ximian bug #14422. svn path=/trunk/; revision=14591
Diffstat (limited to 'widgets/table')
-rw-r--r--widgets/table/e-tree-memory.c3
-rw-r--r--widgets/table/e-tree-sorted.c6
2 files changed, 6 insertions, 3 deletions
diff --git a/widgets/table/e-tree-memory.c b/widgets/table/e-tree-memory.c
index 9f6af6535c..330dac93fb 100644
--- a/widgets/table/e-tree-memory.c
+++ b/widgets/table/e-tree-memory.c
@@ -163,7 +163,8 @@ e_tree_memory_freeze(ETreeMemory *etmm)
{
ETreeMemoryPriv *priv = etmm->priv;
- e_tree_model_pre_change(E_TREE_MODEL(etmm));
+ if (priv->frozen == 0)
+ e_tree_model_pre_change(E_TREE_MODEL(etmm));
priv->frozen ++;
}
diff --git a/widgets/table/e-tree-sorted.c b/widgets/table/e-tree-sorted.c
index 56bd3d3db6..b51b1e6398 100644
--- a/widgets/table/e-tree-sorted.c
+++ b/widgets/table/e-tree-sorted.c
@@ -1039,7 +1039,8 @@ ets_proxy_node_data_changed (ETreeModel *etm, ETreePath node, ETreeSorted *ets)
if (path) {
if (!reposition_path(ets, path))
e_tree_model_node_data_changed(E_TREE_MODEL(ets), path);
- }
+ } else
+ e_tree_model_no_change(E_TREE_MODEL(ets));
}
static void
@@ -1053,7 +1054,8 @@ ets_proxy_node_col_changed (ETreeModel *etm, ETreePath node, int col, ETreeSorte
changed = reposition_path(ets, path);
if (!changed)
e_tree_model_node_col_changed(E_TREE_MODEL(ets), path, col);
- }
+ } else
+ e_tree_model_no_change(E_TREE_MODEL(ets));
}
static void