forked from AuroraMiddleware/gtk
wayland: Fix handling of activation-token in org.freedesktop.Application requests
At the moment, GTK applications search for "desktop-startup-id" in the platform data on Wayland , but desktop environments such as plasma set "activation-token" property instead as indicated in the spec: activation-token: This should be a string of the same value as would be stored in the XDG_ACTIVATION_TOKEN environment variable, as specified by the XDG Activation protocol for Wayland. https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#dbus
This commit is contained in:
parent
09769193d7
commit
65f03121a4
@ -104,7 +104,9 @@ gtk_application_impl_wayland_before_emit (GtkApplicationImpl *impl,
|
||||
{
|
||||
const char *startup_notification_id = NULL;
|
||||
|
||||
g_variant_lookup (platform_data, "desktop-startup-id", "&s", &startup_notification_id);
|
||||
g_variant_lookup (platform_data, "activation-token", "&s", &startup_notification_id);
|
||||
if (!startup_notification_id)
|
||||
g_variant_lookup (platform_data, "desktop-startup-id", "&s", &startup_notification_id);
|
||||
|
||||
gdk_wayland_display_set_startup_notification_id (gdk_display_get_default (), startup_notification_id);
|
||||
}
|
||||
|
@ -323,8 +323,12 @@ gtk_application_add_platform_data (GApplication *application,
|
||||
|
||||
startup_id = gdk_display_get_startup_notification_id (display);
|
||||
if (startup_id && g_utf8_validate (startup_id, -1, NULL))
|
||||
g_variant_builder_add (builder, "{sv}", "desktop-startup-id",
|
||||
g_variant_new_string (startup_id));
|
||||
{
|
||||
g_variant_builder_add (builder, "{sv}", "activation-token",
|
||||
g_variant_new_string (startup_id));
|
||||
g_variant_builder_add (builder, "{sv}", "desktop-startup-id",
|
||||
g_variant_new_string (startup_id));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user