summaryrefslogtreecommitdiff
path: root/gdk/wayland/gdkdisplay-wayland.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdk/wayland/gdkdisplay-wayland.c')
-rw-r--r--gdk/wayland/gdkdisplay-wayland.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/gdk/wayland/gdkdisplay-wayland.c b/gdk/wayland/gdkdisplay-wayland.c
index fc5e40807f..c2f5e6ae78 100644
--- a/gdk/wayland/gdkdisplay-wayland.c
+++ b/gdk/wayland/gdkdisplay-wayland.c
@@ -85,6 +85,7 @@
#define MIN_SYSTEM_BELL_DELAY_MS 20
#define GTK_SHELL1_VERSION 4
+#define XDG_ACTIVATION_VERSION 1
static void _gdk_wayland_display_load_cursor_theme (GdkWaylandDisplay *display_wayland);
@@ -523,6 +524,15 @@ gdk_registry_handle_global (void *data,
_gdk_wayland_screen_init_xdg_output (display_wayland->screen);
_gdk_wayland_display_async_roundtrip (display_wayland);
}
+ else if (strcmp (interface, "xdg_activation_v1") == 0)
+ {
+ display_wayland->xdg_activation_version =
+ MIN (version, XDG_ACTIVATION_VERSION);
+ display_wayland->xdg_activation =
+ wl_registry_bind (display_wayland->wl_registry, id,
+ &xdg_activation_v1_interface,
+ display_wayland->xdg_activation_version);
+ }
g_hash_table_insert (display_wayland->known_globals,
GUINT_TO_POINTER (id), g_strdup (interface));
@@ -947,7 +957,7 @@ gdk_wayland_display_notify_startup_complete (GdkDisplay *display,
return;
}
- if (display_wayland->gtk_shell)
+ if (!display_wayland->xdg_activation && display_wayland->gtk_shell)
gtk_shell1_set_startup_id (display_wayland->gtk_shell, startup_id);
}