aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--river/LockManager.zig11
1 files changed, 11 insertions, 0 deletions
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) {