aboutsummaryrefslogtreecommitdiffstats
path: root/calendar
diff options
context:
space:
mode:
Diffstat (limited to 'calendar')
-rw-r--r--calendar/ChangeLog10
-rw-r--r--calendar/gui/alarm-notify/alarm-queue.c13
-rw-r--r--calendar/gui/alarm-notify/notify-main.c4
3 files changed, 26 insertions, 1 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog
index 2cba6aac9e..1a9af112ec 100644
--- a/calendar/ChangeLog
+++ b/calendar/ChangeLog
@@ -1,3 +1,13 @@
+2003-10-24 Rodrigo Moya <rodrigo@ximian.com>
+
+ * gui/alarm-notify/notify-main.c (client_die_cb): use
+ bonobo_main_quit, not gtk_main_quit.
+
+ * gui/alarm-notify/alarm-queue.c (free_client_alarms_cb): callback
+ for freeing ClientAlarms stored in the hash table.
+ (alarm_queue_done): call free_client_alarms_cb() for each opened
+ client.
+
2003-10-30 Rodrigo Moya <rodrigo@ximian.com>
* pcs/cal-backend-file.c (mark_dirty, save_idle): removed, since
diff --git a/calendar/gui/alarm-notify/alarm-queue.c b/calendar/gui/alarm-notify/alarm-queue.c
index cee17bd97e..774604c804 100644
--- a/calendar/gui/alarm-notify/alarm-queue.c
+++ b/calendar/gui/alarm-notify/alarm-queue.c
@@ -1122,6 +1122,18 @@ alarm_queue_init (void)
alarm_queue_inited = TRUE;
}
+static void
+free_client_alarms_cb (gpointer key, gpointer value, gpointer user_data)
+{
+ CalClient *client = key;
+ ClientAlarms *ca = value;
+
+ if (ca) {
+ g_object_unref (ca->client);
+ g_free (ca);
+ }
+}
+
/**
* alarm_queue_done:
*
@@ -1137,6 +1149,7 @@ alarm_queue_done (void)
/* All clients must be unregistered by now */
g_return_if_fail (g_hash_table_size (client_alarms_hash) == 0);
+ g_hash_table_foreach (client_alarms_hash, (GHFunc) free_client_alarms_cb, NULL);
g_hash_table_destroy (client_alarms_hash);
client_alarms_hash = NULL;
diff --git a/calendar/gui/alarm-notify/notify-main.c b/calendar/gui/alarm-notify/notify-main.c
index d58b5f9e4a..bed7de3653 100644
--- a/calendar/gui/alarm-notify/notify-main.c
+++ b/calendar/gui/alarm-notify/notify-main.c
@@ -34,7 +34,6 @@
#include <bonobo/bonobo-main.h>
#include <bonobo/bonobo-generic-factory.h>
#include <bonobo-activation/bonobo-activation.h>
-#include <gtk/gtkmain.h>
#include "alarm.h"
#include "alarm-queue.h"
#include "alarm-notify.h"
@@ -198,6 +197,9 @@ main (int argc, char **argv)
alarm_queue_done ();
alarm_done ();
+ if (alarm_notify_service)
+ bonobo_object_unref (BONOBO_OBJECT (alarm_notify_service));
+
gnome_sound_shutdown ();
gnome_vfs_shutdown ();