From e46b614c2bf08dd7b09ca8a84321f2c066855aaa Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Fri, 12 Jan 2024 08:45:39 +0400 Subject: Fix clicks activating windows through layer-shell surfaces --- src/niri.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/niri.rs b/src/niri.rs index 3080fbe1..4aa61e83 100644 --- a/src/niri.rs +++ b/src/niri.rs @@ -1055,6 +1055,19 @@ impl Niri { } let (output, pos_within_output) = self.output_under(pos)?; + + // Check if some layer-shell surface is on top. + let layers = layer_map_for_output(output); + let layer_under = |layer| layers.layer_under(layer, pos_within_output).is_some(); + if layer_under(Layer::Overlay) { + return None; + } + + let mon = self.layout.monitor_for_output(output).unwrap(); + if !mon.render_above_top_layer() && layer_under(Layer::Top) { + return None; + } + let (window, _loc) = self.layout.window_under(output, pos_within_output)?; Some(window) } -- cgit