Fix top layer clipping in hover widget
This commit is contained in:
parent
95ac45e33d
commit
9c0f2dc9a5
1 changed files with 22 additions and 19 deletions
|
|
@ -375,29 +375,32 @@ where
|
||||||
cursor: mouse::Cursor,
|
cursor: mouse::Cursor,
|
||||||
viewport: &Rectangle,
|
viewport: &Rectangle,
|
||||||
) {
|
) {
|
||||||
let mut children = layout.children().zip(&tree.children);
|
if let Some(bounds) = layout.bounds().intersection(viewport) {
|
||||||
|
let mut children = layout.children().zip(&tree.children);
|
||||||
|
|
||||||
let (base_layout, base_tree) = children.next().unwrap();
|
let (base_layout, base_tree) = children.next().unwrap();
|
||||||
|
|
||||||
self.base.as_widget().draw(
|
self.base.as_widget().draw(
|
||||||
base_tree,
|
base_tree,
|
||||||
renderer,
|
renderer,
|
||||||
theme,
|
theme,
|
||||||
style,
|
style,
|
||||||
base_layout,
|
base_layout,
|
||||||
cursor,
|
cursor,
|
||||||
viewport,
|
viewport,
|
||||||
);
|
);
|
||||||
|
|
||||||
if cursor.is_over(layout.bounds()) || self.is_top_overlay_active {
|
if cursor.is_over(layout.bounds()) || self.is_top_overlay_active
|
||||||
let (top_layout, top_tree) = children.next().unwrap();
|
{
|
||||||
|
let (top_layout, top_tree) = children.next().unwrap();
|
||||||
|
|
||||||
renderer.with_layer(layout.bounds(), |renderer| {
|
renderer.with_layer(bounds, |renderer| {
|
||||||
self.top.as_widget().draw(
|
self.top.as_widget().draw(
|
||||||
top_tree, renderer, theme, style, top_layout, cursor,
|
top_tree, renderer, theme, style, top_layout,
|
||||||
viewport,
|
cursor, viewport,
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue