1
0
Fork 0
forked from wry/wry

layer-shell: fix input routing to bottom and background layers

This commit is contained in:
Julian Orth 2024-05-06 19:52:42 +02:00
parent c06f532a58
commit 7cb9bd667f
2 changed files with 17 additions and 9 deletions

View file

@ -843,21 +843,29 @@ impl Node for OutputNode {
}); });
fs.tl_as_node().node_find_tree_at(x, y, tree, usecase) fs.tl_as_node().node_find_tree_at(x, y, tree, usecase)
} else { } else {
if y >= bar_height { let mut search_layers = true;
y -= bar_height; if y < bar_height {
let len = tree.len(); search_layers = false;
} else {
if let Some(ws) = self.workspace.get() { if let Some(ws) = self.workspace.get() {
let y = y - bar_height;
let len = tree.len();
tree.push(FoundNode { tree.push(FoundNode {
node: ws.clone(), node: ws.clone(),
x, x,
y, y,
}); });
ws.node_find_tree_at(x, y, tree, usecase); match ws.node_find_tree_at(x, y, tree, usecase) {
} FindTreeResult::AcceptsInput => search_layers = false,
if tree.len() == len { FindTreeResult::Other => {
self.find_layer_surface_at(x, y, &[BOTTOM, BACKGROUND], tree, usecase); tree.truncate(len);
}
}
} }
} }
if search_layers {
self.find_layer_surface_at(x, y, &[BOTTOM, BACKGROUND], tree, usecase);
}
FindTreeResult::AcceptsInput FindTreeResult::AcceptsInput
} }
} }

View file

@ -264,9 +264,9 @@ impl Node for WorkspaceNode {
x, x,
y, y,
}); });
n.node_find_tree_at(x, y, tree, usecase); return n.node_find_tree_at(x, y, tree, usecase);
} }
FindTreeResult::AcceptsInput FindTreeResult::Other
} }
fn node_render(&self, renderer: &mut Renderer, x: i32, y: i32, _bounds: Option<&Rect>) { fn node_render(&self, renderer: &mut Renderer, x: i32, y: i32, _bounds: Option<&Rect>) {