wayland: Set startup ID from GApplication platform data
The GApplication platform data may contain a startup ID that on X11 is used to set the startup notification ID when activated. Do the same on the wayland backend to make startup notifications work for DBus-activated applications where the DESKTOP_STARTUP_ID environment variable is not set. https://bugzilla.gnome.org/show_bug.cgi?id=768531
This commit is contained in:
committed by
Matthias Clasen
parent
d163aba030
commit
38a8e4ee7c
@@ -60,6 +60,17 @@ gtk_application_impl_wayland_handle_window_realize (GtkApplicationImpl *impl,
|
||||
impl_class->handle_window_realize (impl, window);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_application_impl_wayland_before_emit (GtkApplicationImpl *impl,
|
||||
GVariant *platform_data)
|
||||
{
|
||||
const char *startup_notification_id = NULL;
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_application_impl_wayland_init (GtkApplicationImplWayland *wayland)
|
||||
{
|
||||
@@ -72,4 +83,6 @@ gtk_application_impl_wayland_class_init (GtkApplicationImplWaylandClass *class)
|
||||
|
||||
impl_class->handle_window_realize =
|
||||
gtk_application_impl_wayland_handle_window_realize;
|
||||
impl_class->before_emit =
|
||||
gtk_application_impl_wayland_before_emit;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user