diff options
author | Dan Winship <danw@src.gnome.org> | 2000-12-07 02:15:31 +0800 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2000-12-07 02:15:31 +0800 |
commit | 93f5add73131b2a22d6671645c06148cd4fe7eab (patch) | |
tree | f2fe8906ba3155daf395c2db7c196280e436465e /widgets/table | |
parent | 83fff84082593c5efb1ad033c43c9dec208961c9 (diff) | |
download | gsoc2013-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.c | 14 |
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), |