diff --git a/src/render/renderer/renderer.rs b/src/render/renderer/renderer.rs index a20a8e2f..7e96bb8c 100644 --- a/src/render/renderer/renderer.rs +++ b/src/render/renderer/renderer.rs @@ -79,12 +79,6 @@ impl Renderer<'_> { } return; } - if let Some(ws) = output.workspace.get() { - if let Some(fs) = ws.fullscreen.get() { - fs.tl_as_node().node_render(self, x, y); - return; - } - } let opos = output.global.pos.get(); macro_rules! render_layer { ($layer:expr) => { @@ -98,6 +92,13 @@ impl Renderer<'_> { } }; } + if let Some(ws) = output.workspace.get() { + if let Some(fs) = ws.fullscreen.get() { + fs.tl_as_node().node_render(self, x, y); + render_layer!(output.layers[3]); + return; + } + } render_layer!(output.layers[0]); render_layer!(output.layers[1]); let theme = &self.state.theme; diff --git a/src/tree/output.rs b/src/tree/output.rs index fcf8749f..3f561f05 100644 --- a/src/tree/output.rs +++ b/src/tree/output.rs @@ -535,6 +535,12 @@ impl Node for OutputNode { } return FindTreeResult::AcceptsInput; } + { + let res = self.find_layer_surface_at(x, y, &[OVERLAY], tree); + if res.accepts_input() { + return res; + } + } if let Some(ws) = self.workspace.get() { if let Some(fs) = ws.fullscreen.get() { tree.push(FoundNode { @@ -546,7 +552,7 @@ impl Node for OutputNode { } } { - let res = self.find_layer_surface_at(x, y, &[OVERLAY, TOP], tree); + let res = self.find_layer_surface_at(x, y, &[TOP], tree); if res.accepts_input() { return res; }