diff -U0 libnotify-0.4.4/ChangeLog.closed-reason libnotify-0.4.4/ChangeLog --- libnotify-0.4.4/ChangeLog.closed-reason 2007-02-28 05:11:47.000000000 +0000 +++ libnotify-0.4.4/ChangeLog 2008-08-14 15:35:07.000000000 +0100 @@ -0,0 +1,10 @@ +Tue Mar 18 21:51:32 PDT 2008 Christian Hammond + + * libnotify/notification.c: + * libnotify/notification.h: + * libnotify/notify.c: + * libnotify/notify-marshal.list: + * NEWS: + - Add support for sending the closed reason in the signal handler. + Closes ticket #139. + diff -up libnotify-0.4.4/libnotify/notification.c.closed-reason libnotify-0.4.4/libnotify/notification.c --- libnotify-0.4.4/libnotify/notification.c.closed-reason 2008-08-14 15:34:40.000000000 +0100 +++ libnotify-0.4.4/libnotify/notification.c 2008-08-14 15:35:07.000000000 +0100 @@ -47,7 +47,7 @@ static void notify_notification_class_init(NotifyNotificationClass *klass); static void notify_notification_init(NotifyNotification *sp); static void notify_notification_finalize(GObject *object); -static void _close_signal_handler(DBusGProxy *proxy, guint32 id, +static void _close_signal_handler(DBusGProxy *proxy, guint32 id, guint32 reason, NotifyNotification *notification); static void _action_signal_handler(DBusGProxy *proxy, guint32 id, @@ -155,7 +155,7 @@ notify_notification_class_init(NotifyNot G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET(NotifyNotificationClass, closed), NULL, NULL, - g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); + g_cclosure_marshal_VOID__UINT, G_TYPE_NONE, 1, G_TYPE_INT); g_object_class_install_property(object_class, PROP_SUMMARY, g_param_spec_string("summary", "Summary", @@ -678,13 +678,13 @@ notify_notification_set_geometry_hints(N } static void -_close_signal_handler(DBusGProxy *proxy, guint32 id, +_close_signal_handler(DBusGProxy *proxy, guint32 id, guint32 reason, NotifyNotification *notification) { if (id == notification->priv->id) { g_object_ref(G_OBJECT(notification)); - g_signal_emit(notification, signals[SIGNAL_CLOSED], 0); + g_signal_emit(notification, signals[SIGNAL_CLOSED], 0, reason); notification->priv->id = 0; g_object_unref(G_OBJECT(notification)); } diff -up libnotify-0.4.4/libnotify/notification.h.closed-reason libnotify-0.4.4/libnotify/notification.h --- libnotify-0.4.4/libnotify/notification.h.closed-reason 2008-08-14 15:34:40.000000000 +0100 +++ libnotify-0.4.4/libnotify/notification.h 2008-08-14 15:35:07.000000000 +0100 @@ -63,7 +63,7 @@ struct _NotifyNotificationClass GObjectClass parent_class; /* Signals */ - void (*closed)(NotifyNotification *notification); + void (*closed)(NotifyNotification *notification, gint reason); }; /* diff -up libnotify-0.4.4/libnotify/notify.c.closed-reason libnotify-0.4.4/libnotify/notify.c --- libnotify-0.4.4/libnotify/notify.c.closed-reason 2007-02-15 10:28:46.000000000 +0000 +++ libnotify-0.4.4/libnotify/notify.c 2008-08-14 15:35:07.000000000 +0100 @@ -72,13 +72,19 @@ notify_init(const char *app_name) NOTIFY_DBUS_CORE_INTERFACE); dbus_g_connection_unref(bus); + dbus_g_object_register_marshaller(notify_marshal_VOID__UINT_UINT, + G_TYPE_NONE, + G_TYPE_UINT, + G_TYPE_UINT, G_TYPE_INVALID); + dbus_g_object_register_marshaller(notify_marshal_VOID__UINT_STRING, G_TYPE_NONE, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_INVALID); dbus_g_proxy_add_signal(_proxy, "NotificationClosed", - G_TYPE_UINT, G_TYPE_INVALID); + G_TYPE_UINT, G_TYPE_UINT, + G_TYPE_INVALID); dbus_g_proxy_add_signal(_proxy, "ActionInvoked", G_TYPE_UINT, G_TYPE_STRING, G_TYPE_INVALID); diff -up libnotify-0.4.4/libnotify/notify-marshal.list.closed-reason libnotify-0.4.4/libnotify/notify-marshal.list --- libnotify-0.4.4/libnotify/notify-marshal.list.closed-reason 2006-01-11 07:49:04.000000000 +0000 +++ libnotify-0.4.4/libnotify/notify-marshal.list 2008-08-14 15:35:07.000000000 +0100 @@ -1 +1,2 @@ +VOID:UINT,UINT VOID:UINT,STRING diff -up libnotify-0.4.4/NEWS.closed-reason libnotify-0.4.4/NEWS --- libnotify-0.4.4/NEWS.closed-reason 2007-02-28 05:07:27.000000000 +0000 +++ libnotify-0.4.4/NEWS 2008-08-14 15:35:07.000000000 +0100 @@ -1,6 +1,8 @@ version 0.4.4 (27-February-2007): * Fixed a bug where a notification's ID could be reset when a different notification was closed. Patch by jylefort. (Bug #94) + * Added support for sending the closed reason in the "closed" signal + handler. (Ticket #139) * Fixed a crash when the D-BUS proxy was not being freed on notify_uninit, which was problematic when used in a loadable module. (Bug #92) * Fixed a crash when a signal handler for the notification's closed signal