From 4c72f929394638111acb21344796fdd927f2e5c1 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 28 Nov 2022 14:17:52 +0530 Subject: [PATCH] Wayland GNOME: Workaround for latest mutter release breaking full screen for semi-transparent kitty windows Destroy the CSD surfaces when window goes full screen. Fixes #5677 --- docs/changelog.rst | 2 ++ glfw/wl_window.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index 522d81476..e976568b7 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -55,6 +55,8 @@ Detailed list of changes - A new :ac:`sleep` action useful in combine based mappings to make kitty sleep before executing the next action +- Wayland GNOME: Workaround for latest mutter release breaking full screen for semi-transparent kitty windows (:iss:`5677`) + 0.26.5 [2022-11-07] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/glfw/wl_window.c b/glfw/wl_window.c index ab21f43a7..2ce48fb2b 100644 --- a/glfw/wl_window.c +++ b/glfw/wl_window.c @@ -621,7 +621,7 @@ static void xdgSurfaceHandleConfigure(void* data, int width = window->wl.pending.width, height = window->wl.pending.height; set_csd_window_geometry(window, &width, &height); bool resized = dispatchChangesAfterConfigure(window, width, height); - if (window->wl.decorations.serverSide) { + if (window->wl.decorations.serverSide || window->monitor || window->wl.current.toplevel_states & TOPLEVEL_STATE_FULLSCREEN) { free_csd_surfaces(window); } else { ensure_csd_resources(window);