aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/table/e-tree-sorted-variable.c
diff options
context:
space:
mode:
Diffstat (limited to 'widgets/table/e-tree-sorted-variable.c')
-rw-r--r--widgets/table/e-tree-sorted-variable.c34
1 files changed, 21 insertions, 13 deletions
diff --git a/widgets/table/e-tree-sorted-variable.c b/widgets/table/e-tree-sorted-variable.c
index f2a753222a..9fa587022f 100644
--- a/widgets/table/e-tree-sorted-variable.c
+++ b/widgets/table/e-tree-sorted-variable.c
@@ -1,5 +1,5 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
+/*
* e-tree-sorted-variable.c
* Copyright 2000, 2001, Ximian, Inc.
*
@@ -62,32 +62,40 @@ etsv_destroy (GtkObject *object)
{
ETreeSortedVariable *etsv = E_TREE_SORTED_VARIABLE (object);
- gtk_signal_disconnect (GTK_OBJECT (etss->source),
- etsv->table_model_changed_id);
+ if (etsv->table_model_changed_id)
+ gtk_signal_disconnect (GTK_OBJECT (etss->source),
+ etsv->table_model_changed_id);
+ etsv->table_model_changed_id = 0;
+
#if 0
gtk_signal_disconnect (GTK_OBJECT (etss->source),
etsv->table_model_row_changed_id);
gtk_signal_disconnect (GTK_OBJECT (etss->source),
etsv->table_model_cell_changed_id);
+
+ etsv->table_model_row_changed_id = 0;
+ etsv->table_model_cell_changed_id = 0;
#endif
- gtk_signal_disconnect (GTK_OBJECT (etsv->sort_info),
- etsv->sort_info_changed_id);
+ if (etsv->sort_info_changed_id)
+ gtk_signal_disconnect (GTK_OBJECT (etsv->sort_info),
+ etsv->sort_info_changed_id);
+ etsv->sort_info_changed_id = 0;
- if (etsv->sort_idle_id) {
+ if (etsv->sort_idle_id)
g_source_remove(etsv->sort_idle_id);
- }
- if (etsv->insert_idle_id) {
+ etsv->sort_idle_id = 0;
+
+ if (etsv->insert_idle_id)
g_source_remove(etsv->insert_idle_id);
- }
-
- etsv->table_model_changed_id = 0;
- etsv->table_model_row_changed_id = 0;
- etsv->table_model_cell_changed_id = 0;
+ etsv->insert_idle_id = 0;
if (etsv->sort_info)
gtk_object_unref(GTK_OBJECT(etsv->sort_info));
+ etsv->sort_info = NULL;
+
if (etsv->full_header)
gtk_object_unref(GTK_OBJECT(etsv->full_header));
+ etsv->full_header = NULL;
GTK_OBJECT_CLASS (etsv_parent_class)->destroy (object);
}