1
0
Fork 0
forked from wry/wry

layer-shell: don't render top layer if there is a fullscreen window

This commit is contained in:
Julian Orth 2025-07-17 09:13:05 +02:00
parent 75e0b0e520
commit cea01768b8
2 changed files with 14 additions and 8 deletions

View file

@ -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()

View file

@ -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(),