From 4a9d84bdb84ece58db756ccb00d81d684e4a3833 Mon Sep 17 00:00:00 2001 From: Isaac Freund Date: Fri, 3 Mar 2023 15:18:07 +0100 Subject: Xwayland: hide override redirect windows if locked --- river/LockManager.zig | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/river/LockManager.zig b/river/LockManager.zig index e5467ac..26d6cf0 100644 --- a/river/LockManager.zig +++ b/river/LockManager.zig @@ -18,6 +18,9 @@ const LockManager = @This(); const std = @import("std"); const assert = std.debug.assert; + +const build_options = @import("build_options"); + const wlr = @import("wlroots"); const wl = @import("wayland").server.wl; @@ -92,6 +95,10 @@ fn handleLock(listener: *wl.Listener(*wlr.SessionLockV1), lock: *wlr.SessionLock if (manager.state == .unlocked) { manager.state = .waiting_for_lock_surfaces; + if (build_options.xwayland) { + server.root.layers.xwayland_override_redirect.node.setEnabled(false); + } + manager.lock_surfaces_timer.timerUpdate(200) catch { log.err("error setting lock surfaces timer, imperfect frames may be shown", .{}); manager.state = .waiting_for_blank; @@ -218,6 +225,10 @@ fn handleUnlock(listener: *wl.Listener(void)) void { } } + if (build_options.xwayland) { + server.root.layers.xwayland_override_redirect.node.setEnabled(true); + } + { var it = server.input_manager.seats.first; while (it) |node| : (it = node.next) { -- cgit v1.2.3