aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--widgets/table/e-table.c3
-rw-r--r--widgets/table/e-tree.c10
2 files changed, 10 insertions, 3 deletions
diff --git a/widgets/table/e-table.c b/widgets/table/e-table.c
index 1d49f5c121..059d339444 100644
--- a/widgets/table/e-table.c
+++ b/widgets/table/e-table.c
@@ -179,6 +179,9 @@ et_destroy (GtkObject *object)
if (et->header_canvas != NULL)
gtk_widget_destroy (GTK_WIDGET (et->header_canvas));
+ if (et->site != NULL)
+ e_table_drag_source_unset (et);
+
gtk_widget_destroy (GTK_WIDGET (et->table_canvas));
if (et->rebuild_idle_id) {
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),