diff options
author | Milan Crha <mcrha@redhat.com> | 2009-02-25 19:44:54 +0800 |
---|---|---|
committer | Milan Crha <mcrha@src.gnome.org> | 2009-02-25 19:44:54 +0800 |
commit | 9b05720ea654afc2083e652461c76dd76af33914 (patch) | |
tree | b95978e8013b549bade03c5b7bc5516dbe83a47b | |
parent | 6c721ffaebd623d08ab1d11f7778779ad3c14486 (diff) | |
download | gsoc2013-evolution-9b05720ea654afc2083e652461c76dd76af33914.tar.gz gsoc2013-evolution-9b05720ea654afc2083e652461c76dd76af33914.tar.zst gsoc2013-evolution-9b05720ea654afc2083e652461c76dd76af33914.zip |
** Fix for bug #529037
2009-02-25 Milan Crha <mcrha@redhat.com>
** Fix for bug #529037
* gui/gnome-cal.c: (gnome_calendar_destroy):
Disconnect signals on ESource-s too, not only on ECal-s.
svn path=/trunk/; revision=37335
-rw-r--r-- | calendar/ChangeLog | 7 | ||||
-rw-r--r-- | calendar/gui/gnome-cal.c | 11 |
2 files changed, 18 insertions, 0 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog index 536b9da033..22cf72e51c 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,5 +1,12 @@ 2009-02-25 Milan Crha <mcrha@redhat.com> + ** Fix for bug #529037 + + * gui/gnome-cal.c: (gnome_calendar_destroy): + Disconnect signals on ESource-s too, not only on ECal-s. + +2009-02-25 Milan Crha <mcrha@redhat.com> + ** Fix for bug #561465 * gui/e-meeting-list-view.c: (build_table): diff --git a/calendar/gui/gnome-cal.c b/calendar/gui/gnome-cal.c index 3a539cb1b2..1bae7d2879 100644 --- a/calendar/gui/gnome-cal.c +++ b/calendar/gui/gnome-cal.c @@ -1923,8 +1923,13 @@ gnome_calendar_destroy (GtkObject *object) /* Clean up the clients */ for (i = 0; i < E_CAL_SOURCE_TYPE_LAST; i++) { for (l = priv->clients_list[i]; l != NULL; l = l->next) { + ESource *source = e_cal_get_source (l->data); + g_signal_handlers_disconnect_matched (l->data, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, gcal); + + if (source) + g_signal_handlers_disconnect_matched (source, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, gcal); } g_hash_table_destroy (priv->clients[i]); @@ -1934,9 +1939,15 @@ gnome_calendar_destroy (GtkObject *object) priv->clients_list[i] = NULL; if (priv->default_client[i]) { + ESource *source = e_cal_get_source (priv->default_client[i]); + g_signal_handlers_disconnect_matched (priv->default_client[i], G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, gcal); + + if (source) + g_signal_handlers_disconnect_matched (source, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, gcal); + g_object_unref (priv->default_client[i]); } priv->default_client[i] = NULL; |