From 6ae9ad3dc5012b54c7931a8ae7cfd97415add687 Mon Sep 17 00:00:00 2001 From: lkn Date: Tue, 23 Jun 2026 20:47:04 +0200 Subject: [PATCH] handle xdg_toplevel unset_fullscreen request Check toplevel->requested.fullscreen to determine whether the client wants to enter or leave fullscreen, and call wUnfullscreenWindow accordingly. --- src/backend/wayland/wl_xdg.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/backend/wayland/wl_xdg.c b/src/backend/wayland/wl_xdg.c index c8afe51..d2a315c 100644 --- a/src/backend/wayland/wl_xdg.c +++ b/src/backend/wayland/wl_xdg.c @@ -154,8 +154,13 @@ handle_toplevel_request_fullscreen(struct wl_listener *listener, void *data) if (!desc || desc->parent_type != WCLASS_WINDOW) return; WWindow *wwin = (WWindow *)desc->parent; - if (!wwin->flags.fullscreen) - wFullscreenWindow(wwin); + if (view->xdg_surface->toplevel->requested.fullscreen) { + if (!wwin->flags.fullscreen) + wFullscreenWindow(wwin); + } else { + if (wwin->flags.fullscreen) + wUnfullscreenWindow(wwin); + } } /*