aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/table/e-tree.c
diff options
context:
space:
mode:
Diffstat (limited to 'widgets/table/e-tree.c')
-rw-r--r--widgets/table/e-tree.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/widgets/table/e-tree.c b/widgets/table/e-tree.c
index 358d7a22b1..5f1ab0f944 100644
--- a/widgets/table/e-tree.c
+++ b/widgets/table/e-tree.c
@@ -193,9 +193,15 @@ et_destroy (GtkObject *object)
if (et->priv->spec)
gtk_object_unref (GTK_OBJECT (et->priv->spec));
- if (et->priv->header_canvas != NULL)
+ if (et->priv->sorter)
+ gtk_object_unref (GTK_OBJECT (et->priv->sorter));
+
+ if (et->priv->header_canvas)
gtk_widget_destroy (GTK_WIDGET (et->priv->header_canvas));
+ if (et->priv->site)
+ e_tree_drag_source_unset (et);
+
gtk_widget_destroy (GTK_WIDGET (et->priv->table_canvas));
g_free(et->priv);
@@ -676,8 +682,6 @@ e_tree_set_state_object(ETree *e_tree, ETableState *state)
if (e_tree->priv->header)
gtk_object_unref(GTK_OBJECT(e_tree->priv->header));
e_tree->priv->header = e_table_state_to_header (GTK_WIDGET(e_tree), e_tree->priv->full_header, state);
- if (e_tree->priv->header)
- gtk_object_ref(GTK_OBJECT(e_tree->priv->header));
gtk_object_set (GTK_OBJECT (e_tree->priv->header),
"width", (double) (GTK_WIDGET(e_tree->priv->table_canvas)->allocation.width),