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)
} else {
if y >= bar_height {
y -= bar_height;
let len = tree.len();
let mut search_layers = true;
if y < bar_height {
search_layers = false;
} else {
if let Some(ws) = self.workspace.get() {
let y = y - bar_height;
let len = tree.len();
tree.push(FoundNode {
node: ws.clone(),
x,
y,
});
ws.node_find_tree_at(x, y, tree, usecase);
}
if tree.len() == len {
self.find_layer_surface_at(x, y, &[BOTTOM, BACKGROUND], tree, usecase);
match ws.node_find_tree_at(x, y, tree, usecase) {
FindTreeResult::AcceptsInput => search_layers = false,
FindTreeResult::Other => {
tree.truncate(len);
}
}
}
}
if search_layers {
self.find_layer_surface_at(x, y, &[BOTTOM, BACKGROUND], tree, usecase);
}
FindTreeResult::AcceptsInput
}
}

View file

@ -264,9 +264,9 @@ impl Node for WorkspaceNode {
x,
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>) {