* libnotify/notifynotification.c (notify_notification_show_and_forget):

new method that shows and then unrefs the NotifyNotification object.
use this if you just want to fire off a quick notification.

* various compiler warning cleanups
This commit is contained in:
John (J5) Palmieri 2005-12-02 21:03:40 +00:00
parent 38c83b0ef5
commit 4a3be1113e
2 changed files with 59 additions and 15 deletions

View File

@ -1,3 +1,22 @@
Fri Dec 02 2005 John (J5) Palmieri <johnp@redhat.com>
* libnotify/notifynotification.c (notify_notification_show_and_forget):
new method that shows and then unrefs the NotifyNotification object.
use this if you just want to fire off a quick notification.
* various compiler warning cleanups
Fri Dec 02 2005 John (J5) Palmieri <johnp@redhat.com>
* libnotify/notifynotification.c (SIGNAL_TYPE_CLOSED): "closed" glib
signal added
(notify_notification_clear_hints): New API for clearing out the
hints hash
(notify_notification_ref, notify_notification_unref): removed - use
g_object_ref/unref
* tests/*: Various changes to the test binaries
Thu Nov 10 14:00:00 EST 2005 John (J5) Palmieri <johnp@redhat.com>
* Complete rewrite and first import to libnotify-ng module in SVN

View File

@ -186,7 +186,7 @@ notify_notification_finalize (GObject * object)
priv->user_data_free_func (priv->user_data);
dbus_g_proxy_disconnect_signal (priv->proxy, "NotificationClosed",
_close_signal_handler,
(GCallback) _close_signal_handler,
object);
g_free (obj->priv);
@ -375,16 +375,6 @@ notify_notification_set_user_data (NotifyNotification * notification,
return TRUE;
}
static DBusHandlerResult
filter_func (DBusConnection *connection,
DBusMessage *message,
void *user_data)
{
g_message ("member %s", dbus_message_get_member (message));
return DBUS_HANDLER_RESULT_HANDLED;
}
static void
_close_signal_handler (DBusGProxy *proxy,
guint32 id,
@ -399,8 +389,10 @@ _close_signal_handler (DBusGProxy *proxy,
0);
}
gboolean
notify_notification_show (NotifyNotification *notification, GError **error)
static gboolean
_notify_notification_show_internal (NotifyNotification *notification,
GError **error,
gboolean ignore_reply)
{
NotifyNotificationPrivate *priv;
GError *tmp_error;
@ -430,7 +422,7 @@ notify_notification_show (NotifyNotification *notification, GError **error)
dbus_g_proxy_add_signal (priv->proxy, "NotificationClosed",
G_TYPE_UINT, NULL);
dbus_g_proxy_connect_signal (priv->proxy, "NotificationClosed",
_close_signal_handler,
(GCallback) _close_signal_handler,
notification, NULL);
dbus_g_connection_unref (bus);
@ -440,7 +432,8 @@ notify_notification_show (NotifyNotification *notification, GError **error)
_notify_notification_update_applet_hints (notification);
/*TODO: make this nonblocking */
dbus_g_proxy_call (priv->proxy, "Notify", &tmp_error,
if (!ignore_reply)
dbus_g_proxy_call (priv->proxy, "Notify", &tmp_error,
G_TYPE_STRING, _notify_get_app_name (),
G_TYPE_STRING,
(priv->icon_name != NULL) ? priv->icon_name : "",
@ -452,6 +445,19 @@ notify_notification_show (NotifyNotification *notification, GError **error)
G_TYPE_VALUE),
priv->hints, G_TYPE_INT, priv->timeout, G_TYPE_INVALID,
G_TYPE_UINT, &priv->id, G_TYPE_INVALID);
else
dbus_g_proxy_call_no_reply (priv->proxy, "Notify",
G_TYPE_STRING, _notify_get_app_name (),
G_TYPE_STRING,
(priv->icon_name != NULL) ? priv->icon_name : "",
G_TYPE_UINT, priv->id, G_TYPE_STRING, priv->summary,
G_TYPE_STRING, priv->message,
dbus_g_type_get_collection ("GSList", G_TYPE_STRING),
priv->actions, dbus_g_type_get_map ("GHashTable",
G_TYPE_STRING,
G_TYPE_VALUE),
priv->hints, G_TYPE_INT, priv->timeout, G_TYPE_INVALID);
if (tmp_error != NULL)
{
@ -462,6 +468,25 @@ notify_notification_show (NotifyNotification *notification, GError **error)
return TRUE;
}
gboolean
notify_notification_show (NotifyNotification *notification, GError **error)
{
return _notify_notification_show_internal (notification, error, FALSE);
}
gboolean
notify_notification_show_and_forget (NotifyNotification *notification, GError **error)
{
gboolean result;
result = _notify_notification_show_internal (notification, error, TRUE);
g_object_unref (G_OBJECT (notification));
return result;
}
void
notify_notification_set_timeout (NotifyNotification * notification,
gint timeout)