diff options
| author | Isaac Freund <mail@isaacfreund.com> | 2023-03-03 15:18:07 +0100 |
|---|---|---|
| committer | Isaac Freund <mail@isaacfreund.com> | 2023-03-03 15:21:54 +0100 |
| commit | 4a9d84bdb84ece58db756ccb00d81d684e4a3833 (patch) | |
| tree | c984f2bbd913611276372141355a9ce5bb552d0b | |
| parent | 0be43ad45f6837ee5305b0dde403dced8762421b (diff) | |
| download | river-4a9d84bdb84ece58db756ccb00d81d684e4a3833.tar.gz river-4a9d84bdb84ece58db756ccb00d81d684e4a3833.tar.xz | |
Xwayland: hide override redirect windows if locked
| -rw-r--r-- | river/LockManager.zig | 11 |
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) { |
