wayland: Bind correct xdg_wm_base version
authorJonas Ådahl <jadahl@gmail.com>
Tue, 12 Sep 2023 13:51:59 +0000 (21:51 +0800)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 19 Sep 2023 20:32:27 +0000 (16:32 -0400)
Otherwise we won't get the suspend state.

gdk/wayland/gdkdisplay-wayland.c
gdk/wayland/gdktoplevel-wayland.c

index 59e0373c9f2997dc7e5ff89ed0bc2d58c8407e0a..80c7c9954f2ad1bf8951a3ace930ad774db57ce4 100644 (file)
 #define XDG_ACTIVATION_VERSION   1
 #define OUTPUT_VERSION           3
 
+#ifdef HAVE_TOPLEVEL_STATE_SUSPENDED
+#define XDG_WM_BASE_VERSION      6
+#else
+#define XDG_WM_BASE_VERSION      5
+#endif
+
 static void _gdk_wayland_display_load_cursor_theme (GdkWaylandDisplay *display_wayland);
 
 G_DEFINE_TYPE (GdkWaylandDisplay, gdk_wayland_display, GDK_TYPE_DISPLAY)
@@ -638,7 +644,8 @@ _gdk_wayland_display_open (const char *display_name)
         wl_registry_bind (display_wayland->wl_registry,
                           display_wayland->xdg_wm_base_id,
                           &xdg_wm_base_interface,
-                          MIN (display_wayland->xdg_wm_base_version, 4));
+                          MIN (display_wayland->xdg_wm_base_version,
+                               XDG_WM_BASE_VERSION));
       xdg_wm_base_add_listener (display_wayland->xdg_wm_base,
                                 &xdg_wm_base_listener,
                                 display_wayland);
index 9dbab516ab2af00bdb5a56662411fa64baec3f2b..abbd01ece83ecb6f846b6475af6b4632faa3614c 100644 (file)
@@ -672,10 +672,18 @@ xdg_toplevel_configure_bounds (void                *data,
   toplevel->pending.has_bounds = TRUE;
 }
 
+static void
+xdg_toplevel_wm_capabilities (void                *data,
+                              struct xdg_toplevel *xdg_toplevel,
+                              struct wl_array     *capabilities)
+{
+}
+
 static const struct xdg_toplevel_listener xdg_toplevel_listener = {
   xdg_toplevel_configure,
   xdg_toplevel_close,
   xdg_toplevel_configure_bounds,
+  xdg_toplevel_wm_capabilities,
 };
 
 static void