--- evolution-2.7.2.1/calendar/gui/alarm-notify/alarm-queue.c.notification-cleanups 2006-04-22 00:39:20.000000000 -0400 +++ evolution-2.7.2.1/calendar/gui/alarm-notify/alarm-queue.c 2006-05-23 16:04:23.000000000 -0400 @@ -1566,10 +1566,11 @@ const char *summary, *location; GtkTooltips *tooltips; ECalComponentText text; - char *str, *start_str, *end_str, *alarm_str, *time_str; + char *start_str, *end_str, *alarm_str, *time_str; icaltimezone *current_zone; ECalComponentOrganizer organiser; char *body; + NotifyNotification *n; d(printf("%s:%d (popup_notification)\n",__FILE__, __LINE__)); @@ -1601,9 +1602,6 @@ end_str = timet_to_str_with_zone (qa->instance->occur_end, current_zone); time_str = calculate_time (qa->instance->occur_start, qa->instance->occur_end); - str = g_strdup_printf ("%s %s", - start_str, time_str); - if (organiser.cn) { if (location) body = g_strdup_printf ("%s\n%s %s\n%s %s", organiser.cn, _("Location:"), location, start_str, time_str); @@ -1617,16 +1615,21 @@ body = g_strdup_printf ("%s %s", start_str, time_str); } - NotifyNotification *n = notify_notification_new (summary, body, "stock_appointment-reminder", NULL); - if (!notify_notification_show(n, NULL)) + n = notify_notification_new (summary, body, "stock_appointment-reminder", NULL); + + /* Notifications don't timeout: require explicit user action: */ + notify_notification_set_timeout (n, NOTIFY_EXPIRES_NEVER); + + if (!notify_notification_show (n, NULL)) g_warning ("Could not send notification to daemon\n"); - /* create the private structure */ + g_object_unref (n); + + g_free (body); g_free (start_str); g_free (end_str); g_free (alarm_str); g_free (time_str); - g_free (str); }