aboutsummaryrefslogtreecommitdiff
path: root/src/handlers/compositor.rs
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2023-10-13 13:30:11 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2023-10-24 15:06:07 +0400
commitb20d8e7062ce1cbbffdfa64a7b32d2393237ea26 (patch)
treebc71ba769934573d35695848ce4afb4d614e5481 /src/handlers/compositor.rs
parent3fd421f13fb823a5dd2b75d0d8649d190f932b2d (diff)
downloadniri-b20d8e7062ce1cbbffdfa64a7b32d2393237ea26.tar.gz
niri-b20d8e7062ce1cbbffdfa64a7b32d2393237ea26.tar.bz2
niri-b20d8e7062ce1cbbffdfa64a7b32d2393237ea26.zip
Implement ext-session-lock
Diffstat (limited to 'src/handlers/compositor.rs')
-rw-r--r--src/handlers/compositor.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/handlers/compositor.rs b/src/handlers/compositor.rs
index d8d93d9c..034f1ca5 100644
--- a/src/handlers/compositor.rs
+++ b/src/handlers/compositor.rs
@@ -160,6 +160,18 @@ impl CompositorHandler for State {
// FIXME: granular redraws for cursors.
self.niri.queue_redraw_all();
}
+
+ // This might be a lock surface.
+ if self.niri.is_locked() {
+ for (output, state) in &self.niri.output_state {
+ if let Some(lock_surface) = &state.lock_surface {
+ if lock_surface.wl_surface() == surface {
+ self.niri.queue_redraw(output.clone());
+ break;
+ }
+ }
+ }
+ }
}
}