diff --git a/src/renderer.rs b/src/renderer.rs index fcf99a98..d2161089 100644 --- a/src/renderer.rs +++ b/src/renderer.rs @@ -81,7 +81,7 @@ impl Renderer<'_> { let th = theme.sizes.title_height.get(); let srgb_srgb = self.state.color_manager.srgb_srgb(); let srgb = &srgb_srgb.linear; - if let Some(fs) = fullscreen { + if let Some(fs) = &fullscreen { fs.node_render(self, x, y, None); } else { render_layer!(output.layers[0]); @@ -182,7 +182,9 @@ impl Renderer<'_> { }; } render_stacked!(self.state.root.stacked); - render_layer!(output.layers[2]); + if fullscreen.is_none() { + render_layer!(output.layers[2]); + } render_layer!(output.layers[3]); render_stacked!(self.state.root.stacked_above_layers); if let Some(ws) = output.workspace.get() diff --git a/src/tree/output.rs b/src/tree/output.rs index 6515bf3e..b3cce86c 100644 --- a/src/tree/output.rs +++ b/src/tree/output.rs @@ -1057,13 +1057,13 @@ impl OutputNode { self.title_visible.set(lower_visible); set_layer_visible!(self.layers[0], lower_visible); set_layer_visible!(self.layers[1], lower_visible); + set_layer_visible!(self.layers[2], lower_visible); for item in self.tray_items.iter() { item.set_visible(lower_visible); } if let Some(ws) = self.workspace.get() { ws.set_visible(visible); } - set_layer_visible!(self.layers[2], visible); set_layer_visible!(self.layers[3], visible); } @@ -1499,8 +1499,16 @@ impl Node for OutputNode { return res; } } + let mut fullscreen = None; + if let Some(ws) = self.workspace.get() { + fullscreen = ws.fullscreen.get(); + } { - let res = self.find_layer_surface_at(x, y, &[OVERLAY, TOP], tree, usecase); + let mut layers = &[OVERLAY, TOP][..]; + if fullscreen.is_some() { + layers = &[OVERLAY]; + } + let res = self.find_layer_surface_at(x, y, layers, tree, usecase); if res.accepts_input() { return res; } @@ -1511,10 +1519,6 @@ impl Node for OutputNode { return res; } } - let mut fullscreen = None; - if let Some(ws) = self.workspace.get() { - fullscreen = ws.fullscreen.get(); - } if let Some(fs) = fullscreen { tree.push(FoundNode { node: fs.clone(),