Wayland compositor (wlroots)
git clone https://git.lucas.co/cce-compositor.git
WindowManager: process hidden fullscreen windows correctly
This commit fixes surface z-order when hidden fullscreen windows are
present.
river/WindowManager.zig | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/river/WindowManager.zig b/river/WindowManager.zig
index 868d10a..370256e 100644
--- a/river/WindowManager.zig
+++ b/river/WindowManager.zig
@@ -495,7 +495,7 @@ fn renderFinish(wm: *WindowManager) void {
switch (node.get()) {
.window => |window| {
hash.update(@ptrCast(&window.ref));
- hash.update(&.{@intFromBool(window.wm_requested.fullscreen != null)});
+ hash.update(&.{@intFromBool(renderedFullscreen(window))});
},
.shell_surface => |shell_surface| {
hash.update(@ptrCast(&shell_surface));
@@ -519,7 +519,7 @@ fn renderFinish(wm: *WindowManager) void {
window.renderFinish();
if (!reorder) continue;
window.popup_tree.node.reparent(server.scene.layers.popups);
- if (window.wm_requested.fullscreen != null) {
+ if (renderedFullscreen(window)) {
window.tree.node.reparent(server.scene.layers.fullscreen);
window.tree.node.raiseToTop();
found_fullscreen = true;
@@ -560,3 +560,7 @@ fn renderFinish(wm: *WindowManager) void {
server.input_manager.processEvents();
}
+
+fn renderedFullscreen(window: *Window) bool {
+ return window.wm_requested.fullscreen != null and !window.rendering_requested.hidden;
+}