aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/table/e-table-header.c
diff options
context:
space:
mode:
Diffstat (limited to 'widgets/table/e-table-header.c')
-rw-r--r--widgets/table/e-table-header.c19
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);