diff options
Diffstat (limited to 'widgets/table/e-table-header.c')
-rw-r--r-- | widgets/table/e-table-header.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/widgets/table/e-table-header.c b/widgets/table/e-table-header.c index 70d9b5583e..e57a8f38a0 100644 --- a/widgets/table/e-table-header.c +++ b/widgets/table/e-table-header.c @@ -1,5 +1,5 @@ /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ -/* +/* * e-table-header.c * Copyright 1999, 2000, 2001, Ximian, Inc. * @@ -26,6 +26,8 @@ #include <string.h> #include <gtk/gtkobject.h> #include <gtk/gtksignal.h> +#include <gtk/gtkimage.h> +#include <gal/util/e-util.h> #include "e-table-header.h" #include "e-table-defines.h" #include "gal/util/e-util.h" @@ -153,12 +155,18 @@ eth_destroy (GtkObject *object) gtk_signal_disconnect(GTK_OBJECT(eth->sort_info), eth->sort_info_group_change_id); gtk_object_unref(GTK_OBJECT(eth->sort_info)); + eth->sort_info = NULL; } if (eth->idle) g_source_remove(eth->idle); - g_slist_foreach(eth->change_queue, (GFunc) g_free, NULL); - g_slist_free(eth->change_queue); + eth->idle = 0; + + if (eth->change_queue) { + g_slist_foreach(eth->change_queue, (GFunc) g_free, NULL); + g_slist_free(eth->change_queue); + eth->change_queue = NULL; + } /* * Destroy columns @@ -168,6 +176,9 @@ eth_destroy (GtkObject *object) } g_free (eth->columns); + eth->col_count = 0; + eth->columns = NULL; + if (e_table_header_parent_class->destroy) e_table_header_parent_class->destroy (object); } @@ -277,7 +288,7 @@ e_table_header_class_init (GtkObjectClass *object_class) GTK_RUN_LAST, E_OBJECT_CLASS_TYPE (object_class), GTK_SIGNAL_OFFSET (ETableHeaderClass, request_width), - gtk_marshal_INT__INT, + e_marshal_INT__INT, GTK_TYPE_INT, 1, GTK_TYPE_INT); E_OBJECT_CLASS_ADD_SIGNALS (object_class, eth_signals, LAST_SIGNAL); |