diff --git a/src/apprt/gtk/Window.zig b/src/apprt/gtk/Window.zig index b850ece81..58f5659f0 100644 --- a/src/apprt/gtk/Window.zig +++ b/src/apprt/gtk/Window.zig @@ -639,16 +639,20 @@ fn gtkWindowNotifyMaximized( ud: ?*anyopaque, ) callconv(.C) void { const self = userdataSelf(ud orelse return); - const maximized = c.gtk_window_is_maximized(self.window) != 0; // Only toggle visibility of the header bar when we're using CSDs, // and actually intend on displaying the header bar if (!self.winproto.clientSideDecorationEnabled()) return; + // If we aren't maximized, we should show the headerbar again + // if it was originally visible. + const maximized = c.gtk_window_is_maximized(self.window) != 0; if (!maximized) { self.headerbar.setVisible(self.app.config.@"gtk-titlebar"); return; } + + // If we are maximized, we should hide the headerbar if requested. if (self.app.config.@"gtk-titlebar-hide-when-maximized") { self.headerbar.setVisible(false); } @@ -677,7 +681,8 @@ fn gtkWindowNotifyFullscreened( const self = userdataSelf(ud orelse return); const fullscreened = c.gtk_window_is_fullscreen(@ptrCast(object)) != 0; if (!fullscreened) { - self.headerbar.setVisible(self.app.config.@"gtk-titlebar"); + const csd_enabled = self.winproto.clientSideDecorationEnabled(); + self.headerbar.setVisible(self.app.config.@"gtk-titlebar" and csd_enabled); return; }