[libnotify] Allow properties to be set in any order
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libnotify] Allow properties to be set in any order
- Date: Mon, 21 Mar 2011 03:54:59 +0000 (UTC)
commit 10ea1f0e65cb7be67b7e76a6dde2806bd7e2ae3d
Author: Matthias Clasen <mclasen redhat com>
Date: Sun Mar 20 23:51:55 2011 -0400
Allow properties to be set in any order
The code as written needlessly required summary to be set first.
https://bugzilla.gnome.org/show_bug.cgi?id=645222
libnotify/notification.c | 81 +++++++++++++++++++++++++++-------------------
1 files changed, 48 insertions(+), 33 deletions(-)
---
diff --git a/libnotify/notification.c b/libnotify/notification.c
index 6f20fbf..c10dcb4 100644
--- a/libnotify/notification.c
+++ b/libnotify/notification.c
@@ -229,6 +229,12 @@ notify_notification_class_init (NotifyNotificationClass *klass)
}
static void
+notify_notification_update_internal (NotifyNotification *notification,
+ const char *summary,
+ const char *body,
+ const char *icon);
+
+static void
notify_notification_set_property (GObject *object,
guint prop_id,
const GValue *value,
@@ -243,24 +249,24 @@ notify_notification_set_property (GObject *object,
break;
case PROP_SUMMARY:
- notify_notification_update (notification,
- g_value_get_string (value),
- priv->body,
- priv->icon_name);
+ notify_notification_update_internal (notification,
+ g_value_get_string (value),
+ priv->body,
+ priv->icon_name);
break;
case PROP_BODY:
- notify_notification_update (notification,
- priv->summary,
- g_value_get_string (value),
- priv->icon_name);
+ notify_notification_update_internal (notification,
+ priv->summary,
+ g_value_get_string (value),
+ priv->icon_name);
break;
case PROP_ICON_NAME:
- notify_notification_update (notification,
- priv->summary,
- priv->body,
- g_value_get_string (value));
+ notify_notification_update_internal (notification,
+ priv->summary,
+ priv->body,
+ g_value_get_string (value));
break;
default:
@@ -389,6 +395,35 @@ notify_notification_new (const char *summary,
NULL);
}
+static void
+notify_notification_update_internal (NotifyNotification *notification,
+ const char *summary,
+ const char *body,
+ const char *icon)
+{
+ if (notification->priv->summary != summary) {
+ g_free (notification->priv->summary);
+ notification->priv->summary = g_strdup (summary);
+ g_object_notify (G_OBJECT (notification), "summary");
+ }
+
+ if (notification->priv->body != body) {
+ g_free (notification->priv->body);
+ notification->priv->body = (body != NULL
+ && *body != '\0' ? g_strdup (body) : NULL);
+ g_object_notify (G_OBJECT (notification), "body");
+ }
+
+ if (notification->priv->icon_name != icon) {
+ g_free (notification->priv->icon_name);
+ notification->priv->icon_name = (icon != NULL
+ && *icon != '\0' ? g_strdup (icon) : NULL);
+ g_object_notify (G_OBJECT (notification), "icon-name");
+ }
+
+ notification->priv->updates_pending = TRUE;
+}
+
/**
* notify_notification_update:
* @notification: The notification to update.
@@ -412,27 +447,7 @@ notify_notification_update (NotifyNotification *notification,
g_return_val_if_fail (NOTIFY_IS_NOTIFICATION (notification), FALSE);
g_return_val_if_fail (summary != NULL && *summary != '\0', FALSE);
- if (notification->priv->summary != summary) {
- g_free (notification->priv->summary);
- notification->priv->summary = g_strdup (summary);
- g_object_notify (G_OBJECT (notification), "summary");
- }
-
- if (notification->priv->body != body) {
- g_free (notification->priv->body);
- notification->priv->body = (body != NULL
- && *body != '\0' ? g_strdup (body) : NULL);
- g_object_notify (G_OBJECT (notification), "body");
- }
-
- if (notification->priv->icon_name != icon) {
- g_free (notification->priv->icon_name);
- notification->priv->icon_name = (icon != NULL
- && *icon != '\0' ? g_strdup (icon) : NULL);
- g_object_notify (G_OBJECT (notification), "icon-name");
- }
-
- notification->priv->updates_pending = TRUE;
+ notify_notification_update_internal (notification, summary, body, icon);
return TRUE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]