diff options
author | Rodrigo Moya <rodrigo@ximian.com> | 2002-06-26 18:45:15 +0800 |
---|---|---|
committer | Rodrigo Moya <rodrigo@src.gnome.org> | 2002-06-26 18:45:15 +0800 |
commit | 65117fc884fdc8772306d97b076807b0ab3998e2 (patch) | |
tree | 2c17a810dd8805e2035aa4290d1517beb45617dd | |
parent | 1d97d419925319e43848ea4c151455b8c1ae77e3 (diff) | |
download | gsoc2013-evolution-65117fc884fdc8772306d97b076807b0ab3998e2.tar gsoc2013-evolution-65117fc884fdc8772306d97b076807b0ab3998e2.tar.gz gsoc2013-evolution-65117fc884fdc8772306d97b076807b0ab3998e2.tar.bz2 gsoc2013-evolution-65117fc884fdc8772306d97b076807b0ab3998e2.tar.lz gsoc2013-evolution-65117fc884fdc8772306d97b076807b0ab3998e2.tar.xz gsoc2013-evolution-65117fc884fdc8772306d97b076807b0ab3998e2.tar.zst gsoc2013-evolution-65117fc884fdc8772306d97b076807b0ab3998e2.zip |
Fixes #25410
2002-06-25 Rodrigo Moya <rodrigo@ximian.com>
Fixes #25410
* gui/alarm-notify.c (AlarmNotify_removeCalendar): do proper
cleanup on removal of clients.
(alarm_notify_add_calendar): ditto.
svn path=/trunk/; revision=17287
-rw-r--r-- | calendar/ChangeLog | 8 | ||||
-rw-r--r-- | calendar/gui/alarm-notify/alarm-notify.c | 8 |
2 files changed, 16 insertions, 0 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog index 576ef9774f..f3a70554a4 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,3 +1,11 @@ +2002-06-25 Rodrigo Moya <rodrigo@ximian.com> + + Fixes #25410 + + * gui/alarm-notify.c (AlarmNotify_removeCalendar): do proper + cleanup on removal of clients. + (alarm_notify_add_calendar): ditto. + 2002-06-25 JP Rosevear <jpr@ximian.com> * gui/itip-utils.c (comp_compliant): plug leak and actually use diff --git a/calendar/gui/alarm-notify/alarm-notify.c b/calendar/gui/alarm-notify/alarm-notify.c index 991a10647f..a2b3d1ae9d 100644 --- a/calendar/gui/alarm-notify/alarm-notify.c +++ b/calendar/gui/alarm-notify/alarm-notify.c @@ -329,6 +329,10 @@ AlarmNotify_removeCalendar (PortableServer_Servant servant, g_hash_table_remove (priv->uri_client_hash, str_uri); g_free (orig_str); + gtk_signal_disconnect_by_data (GTK_OBJECT (lc->client), lc); + if (lc->timeout_id != -1) + g_source_remove (lc->timeout_id); + alarm_queue_remove_client (lc->client); gtk_object_unref (GTK_OBJECT (lc->client)); e_uri_free (lc->uri); g_free (lc); @@ -425,6 +429,9 @@ alarm_notify_add_calendar (AlarmNotify *an, const char *str_uri, gboolean load_a } if (g_hash_table_lookup_extended (priv->uri_client_hash, str_uri, &s, &lc)) { + g_hash_table_remove (priv->uri_client_hash, str_uri); + + gtk_signal_disconnect_by_data (GTK_OBJECT (lc->client), lc); if (lc->timeout_id != -1) g_source_remove (lc->timeout_id); alarm_queue_remove_client (lc->client); @@ -450,6 +457,7 @@ alarm_notify_add_calendar (AlarmNotify *an, const char *str_uri, gboolean load_a lc->client = client; lc->uri = uri; lc->refcount = 1; + lc->timeout_id = -1; g_hash_table_insert (priv->uri_client_hash, g_strdup (str_uri), lc); } else { |