diff options
-rw-r--r-- | widgets/table/e-table.c | 3 | ||||
-rw-r--r-- | widgets/table/e-tree.c | 10 |
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), |