From 4ed430b4ef3013c96fa56cdc57b925b42d20ead9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Thu, 20 Oct 2016 18:00:04 +0200 Subject: [PATCH] gtk-shell: Work around non-working startup notifications GNOME Shell relies on the MetaScreen::startup-sequence-changed signal, which is tied to (lib)startup-notification and therefore X11. As a result, when we remove the startup sequence of a wayland client, GNOME Shell will not be notified about this until startup-notification's timeout is hit. As a temporary stop-gap, go through XWayland even for wayland clients, so that the signal is emitted when expected. https://bugzilla.gnome.org/show_bug.cgi?id=768531 --- src/wayland/meta-wayland-gtk-shell.c | 10 ++++++++++ 1 file changed, 10 insertions(+) Index: mutter-3.29.2/src/wayland/meta-wayland-gtk-shell.c =================================================================== --- mutter-3.29.2.orig/src/wayland/meta-wayland-gtk-shell.c 2017-12-21 16:44:13.000000000 +0100 +++ mutter-3.29.2/src/wayland/meta-wayland-gtk-shell.c 2018-07-24 21:26:48.888683780 +0200 @@ -312,11 +312,21 @@ gtk_shell_set_startup_id (struct wl_clie struct wl_resource *resource, const char *startup_id) { +#if 0 MetaDisplay *display; display = meta_get_display (); meta_startup_notification_remove_sequence (display->startup_notification, startup_id); +#else + /* HACK: MetaScreen::startup-sequence-changed is currently tied to + (lib)startup-notification, which means it only works on X11; + so for now, always go through XWayland, even for wayland clients */ + gdk_x11_display_broadcast_startup_message (gdk_display_get_default (), + "remove", + "ID", startup_id, + NULL); +#endif } static void