aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIsaac Freund <mail@isaacfreund.com>2023-03-03 15:18:07 +0100
committerIsaac Freund <mail@isaacfreund.com>2023-03-03 15:21:54 +0100
commit4a9d84bdb84ece58db756ccb00d81d684e4a3833 (patch)
treec984f2bbd913611276372141355a9ce5bb552d0b
parent0be43ad45f6837ee5305b0dde403dced8762421b (diff)
downloadriver-4a9d84bdb84ece58db756ccb00d81d684e4a3833.tar.gz
river-4a9d84bdb84ece58db756ccb00d81d684e4a3833.tar.xz
Xwayland: hide override redirect windows if locked
-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) {