summaryrefslogtreecommitdiff
path: root/libnotify/notification.c
diff options
context:
space:
mode:
Diffstat (limited to 'libnotify/notification.c')
-rw-r--r--libnotify/notification.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/libnotify/notification.c b/libnotify/notification.c
index c4f9be5..1c442db 100644
--- a/libnotify/notification.c
+++ b/libnotify/notification.c
@@ -634,6 +634,9 @@ notify_notification_show (NotifyNotification *notification,
GHashTableIter iter;
gpointer key, data;
GVariant *result;
+#ifdef GLIB_VERSION_2_32
+ GApplication *application;
+#endif
g_return_val_if_fail (notification != NULL, FALSE);
g_return_val_if_fail (NOTIFY_IS_NOTIFICATION (notification), FALSE);
@@ -668,6 +671,21 @@ notify_notification_show (NotifyNotification *notification,
g_variant_builder_add (&hints_builder, "{sv}", key, data);
}
+#ifdef GLIB_VERSION_2_32
+ application = g_application_get_default ();
+
+ if (application != NULL) {
+ GVariant *desktop_entry = g_hash_table_lookup (priv->hints, "desktop-entry");
+
+ if (desktop_entry == NULL) {
+ const char *application_id = g_application_get_application_id (application);
+
+ g_variant_builder_add (&hints_builder, "{sv}", "desktop-entry",
+ g_variant_new_string (application_id));
+ }
+ }
+#endif
+
/* TODO: make this nonblocking */
result = g_dbus_proxy_call_sync (proxy,
"Notify",