layer-shell: fix input routing to bottom and background layers
This commit is contained in:
parent
c06f532a58
commit
7cb9bd667f
2 changed files with 17 additions and 9 deletions
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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>) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue