From ac582ccf7c8fa1c3185643795ea30b29aad52004 Mon Sep 17 00:00:00 2001 From: Leah Amelia Chen Date: Fri, 31 Jan 2025 12:03:44 +0100 Subject: [PATCH] gtk(wayland): respect window-decoration=none on GNOME This is, admittedly, a very silly bug. On GNOME the SSD protocol is not available and past me just decided to always enable CSDs in that case, *even when* `window-decoration = none`. I now question my own intelligence. --- src/apprt/gtk/winproto/wayland.zig | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/apprt/gtk/winproto/wayland.zig b/src/apprt/gtk/winproto/wayland.zig index 8df3e57b3..3e239eb29 100644 --- a/src/apprt/gtk/winproto/wayland.zig +++ b/src/apprt/gtk/winproto/wayland.zig @@ -251,12 +251,13 @@ pub const Window = struct { } pub fn clientSideDecorationEnabled(self: Window) bool { - // Compositor doesn't support the SSD protocol - if (self.decoration == null) return true; - return switch (self.getDecorationMode()) { .Client => true, - .Server, .None => false, + // If we support SSDs, then we should *not* enable CSDs if we prefer SSDs. + // However, if we do not support SSDs (e.g. GNOME) then we should enable + // CSDs even if the user prefers SSDs. + .Server => if (self.app_context.kde_decoration_manager) |_| false else true, + .None => false, else => unreachable, }; }