aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/table/e-table.c
diff options
context:
space:
mode:
Diffstat (limited to 'widgets/table/e-table.c')
-rw-r--r--widgets/table/e-table.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/widgets/table/e-table.c b/widgets/table/e-table.c
index d75937d5ed..36f7d5a776 100644
--- a/widgets/table/e-table.c
+++ b/widgets/table/e-table.c
@@ -49,12 +49,6 @@ et_destroy (GtkObject *object)
{
ETable *et = E_TABLE (object);
- gtk_object_unref (GTK_OBJECT (et->model));
- gtk_object_unref (GTK_OBJECT (et->full_header));
- gtk_object_unref (GTK_OBJECT (et->header));
- gtk_object_unref (GTK_OBJECT (et->sort_info));
- gtk_widget_destroy (GTK_WIDGET (et->header_canvas));
- gtk_widget_destroy (GTK_WIDGET (et->table_canvas));
gtk_signal_disconnect (GTK_OBJECT (et->model),
et->table_model_change_id);
@@ -63,9 +57,16 @@ et_destroy (GtkObject *object)
gtk_signal_disconnect (GTK_OBJECT (et->model),
et->table_cell_change_id);
if (et->sort_info_change_id)
- gtk_signal_disconnect (GTK_OBJECT (et->model),
+ gtk_signal_disconnect (GTK_OBJECT (et->sort_info),
et->sort_info_change_id);
+ gtk_object_unref (GTK_OBJECT (et->model));
+ gtk_object_unref (GTK_OBJECT (et->full_header));
+ gtk_object_unref (GTK_OBJECT (et->header));
+ gtk_object_unref (GTK_OBJECT (et->sort_info));
+ gtk_widget_destroy (GTK_WIDGET (et->header_canvas));
+ gtk_widget_destroy (GTK_WIDGET (et->table_canvas));
+
if (et->rebuild_idle_id) {
g_source_remove(et->rebuild_idle_id);
et->rebuild_idle_id = 0;