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
This commit is contained in:
Florian Müllner 2016-10-20 18:00:04 +02:00 committed by Ray Strode
parent 34f5bdeea3
commit dcfaf95ff4

View File

@ -312,11 +312,21 @@ gtk_shell_set_startup_id (struct wl_client *client,
struct wl_resource *resource, struct wl_resource *resource,
const char *startup_id) const char *startup_id)
{ {
#if 0
MetaDisplay *display; MetaDisplay *display;
display = meta_get_display (); display = meta_get_display ();
meta_startup_notification_remove_sequence (display->startup_notification, meta_startup_notification_remove_sequence (display->startup_notification,
startup_id); 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 static void