diff --git a/src/Wm.zig b/src/Wm.zig index 03943c9..ec110f4 100644 --- a/src/Wm.zig +++ b/src/Wm.zig @@ -866,8 +866,16 @@ fn render(self: *Wm) void { self.scratch_order.append(gpa, win) catch {}; } + // A fullscreen window covers the whole output, tab bar included: the + // bar is placed above every window at the end of the sequence, so + // leaving it mapped would paint the strip over the fullscreen client. + const fullscreened = for (self.windows.items) |win| { + if (win.output != out or win.closed) continue; + if (win.visible and win.fullscreen) break true; + } else false; + // The tab bar sits above the tiled windows it labels. - if (out.stacked and out.tabbar_box != null and config.tabbar_height > 0) { + if (!fullscreened and out.stacked and out.tabbar_box != null and config.tabbar_height > 0) { self.scratch_windows.clearRetainingCapacity(); for (self.windows.items) |win| { if (win.output != out or win.closed) continue;