aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/table
diff options
context:
space:
mode:
authorDan Winship <danw@src.gnome.org>2000-12-07 02:15:31 +0800
committerDan Winship <danw@src.gnome.org>2000-12-07 02:15:31 +0800
commit93f5add73131b2a22d6671645c06148cd4fe7eab (patch)
treef2fe8906ba3155daf395c2db7c196280e436465e /widgets/table
parent83fff84082593c5efb1ad033c43c9dec208961c9 (diff)
downloadgsoc2013-evolution-93f5add73131b2a22d6671645c06148cd4fe7eab.tar.gz
gsoc2013-evolution-93f5add73131b2a22d6671645c06148cd4fe7eab.tar.zst
gsoc2013-evolution-93f5add73131b2a22d6671645c06148cd4fe7eab.zip
disconnect the "group_info_changed" signal on the old sort_info and
* e-table.c (e_table_set_state_object): disconnect the "group_info_changed" signal on the old sort_info and connect it to the new one. (Noticed because of a gtk warning in et_destroy, but probably fixes some actual bug(s) too.) svn path=/trunk/; revision=6809
Diffstat (limited to 'widgets/table')
-rw-r--r--widgets/table/e-table.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/widgets/table/e-table.c b/widgets/table/e-table.c
index 6da35fea39..e55e9ee010 100644
--- a/widgets/table/e-table.c
+++ b/widgets/table/e-table.c
@@ -731,11 +731,21 @@ e_table_set_state_object(ETable *e_table, ETableState *state)
if (e_table->header)
gtk_object_ref(GTK_OBJECT(e_table->header));
- if (e_table->sort_info)
+ if (e_table->sort_info) {
+ if (e_table->group_info_change_id)
+ gtk_signal_disconnect (GTK_OBJECT (e_table->sort_info),
+ e_table->group_info_change_id);
gtk_object_unref(GTK_OBJECT(e_table->sort_info));
+ }
e_table->sort_info = state->sort_info;
- if (e_table->sort_info)
+ if (e_table->sort_info) {
gtk_object_ref(GTK_OBJECT(e_table->sort_info));
+ e_table->group_info_change_id =
+ gtk_signal_connect (GTK_OBJECT (e_table->sort_info),
+ "group_info_changed",
+ GTK_SIGNAL_FUNC (sort_info_changed),
+ e_table);
+ }
if (e_table->header_item)
gtk_object_set(GTK_OBJECT(e_table->header_item),