From: tokyo4j Date: Mon, 9 Jun 2025 21:50:41 +0000 (+0900) Subject: Bump xdg-shell version from 3 to 6 X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=ab9cf4dc9753630401662c1b5aced92b1f2edd05;p=proto%2Flabwc.git Bump xdg-shell version from 3 to 6 - Send xdg_toplevel.wm_capabilities - Send xdg_toplevel.configure_bounds so that clients can map a window that fits within the usable area, without relying on view_constrain_size_to_that_of_usable_area() which is called after map. - (The new "suspended" state should be handled by wlr_scene in the future) --- diff --git a/src/xdg.c b/src/xdg.c index a31550e5..c2da35b7 100644 --- a/src/xdg.c +++ b/src/xdg.c @@ -18,7 +18,7 @@ #include "window-rules.h" #include "workspaces.h" -#define LAB_XDG_SHELL_VERSION (3) +#define LAB_XDG_SHELL_VERSION 6 #define CONFIGURE_TIMEOUT_MS 100 static struct xdg_toplevel_view * @@ -139,6 +139,19 @@ handle_commit(struct wl_listener *listener, void *data) if (serial > 0) { set_pending_configure_serial(view, serial); } + + uint32_t wm_caps = WLR_XDG_TOPLEVEL_WM_CAPABILITIES_WINDOW_MENU + | WLR_XDG_TOPLEVEL_WM_CAPABILITIES_MAXIMIZE + | WLR_XDG_TOPLEVEL_WM_CAPABILITIES_FULLSCREEN + | WLR_XDG_TOPLEVEL_WM_CAPABILITIES_MINIMIZE; + wlr_xdg_toplevel_set_wm_capabilities(toplevel, wm_caps); + + if (view->output) { + wlr_xdg_toplevel_set_bounds(toplevel, + view->output->usable_area.width, + view->output->usable_area.height); + } + /* * Handle initial fullscreen/maximize requests immediately after * scheduling the initial configure event (before it is sent) in