layer-shell: don't render top layer if there is a fullscreen window
This commit is contained in:
parent
75e0b0e520
commit
cea01768b8
2 changed files with 14 additions and 8 deletions
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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(),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue