fix(tooltip): mouse interaction
This commit is contained in:
parent
8b5d5ee45c
commit
0ce914b57a
2 changed files with 22 additions and 24 deletions
|
|
@ -209,7 +209,7 @@ where
|
||||||
renderer: &Renderer,
|
renderer: &Renderer,
|
||||||
limits: &layout::Limits,
|
limits: &layout::Limits,
|
||||||
) -> layout::Node {
|
) -> layout::Node {
|
||||||
let layout = self.container.layout(
|
self.container.layout(
|
||||||
tree,
|
tree,
|
||||||
renderer,
|
renderer,
|
||||||
if self.ignore_bounds {
|
if self.ignore_bounds {
|
||||||
|
|
@ -217,9 +217,7 @@ where
|
||||||
} else {
|
} else {
|
||||||
limits
|
limits
|
||||||
},
|
},
|
||||||
);
|
)
|
||||||
|
|
||||||
layout
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn operate(
|
fn operate(
|
||||||
|
|
|
||||||
|
|
@ -224,30 +224,26 @@ impl<'a, Message: 'a + Clone> Widget<Message, crate::Theme, crate::Renderer>
|
||||||
shell: &mut Shell<'_, Message>,
|
shell: &mut Shell<'_, Message>,
|
||||||
viewport: &Rectangle,
|
viewport: &Rectangle,
|
||||||
) -> event::Status {
|
) -> event::Status {
|
||||||
if self.content.as_widget_mut().on_event(
|
let status = update(
|
||||||
&mut tree.children[0],
|
|
||||||
event.clone(),
|
|
||||||
layout.children().next().unwrap(),
|
|
||||||
cursor,
|
|
||||||
renderer,
|
|
||||||
clipboard,
|
|
||||||
shell,
|
|
||||||
viewport,
|
|
||||||
) == event::Status::Captured
|
|
||||||
{
|
|
||||||
return event::Status::Captured;
|
|
||||||
}
|
|
||||||
|
|
||||||
update(
|
|
||||||
self.id.clone(),
|
self.id.clone(),
|
||||||
event,
|
event.clone(),
|
||||||
layout,
|
layout,
|
||||||
cursor,
|
cursor,
|
||||||
shell,
|
shell,
|
||||||
&self.on_hover,
|
&self.on_hover,
|
||||||
&self.on_leave,
|
&self.on_leave,
|
||||||
|| tree.state.downcast_mut::<State>(),
|
|| tree.state.downcast_mut::<State>(),
|
||||||
)
|
);
|
||||||
|
status.merge(self.content.as_widget_mut().on_event(
|
||||||
|
&mut tree.children[0],
|
||||||
|
event,
|
||||||
|
layout.children().next().unwrap(),
|
||||||
|
cursor,
|
||||||
|
renderer,
|
||||||
|
clipboard,
|
||||||
|
shell,
|
||||||
|
viewport,
|
||||||
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
#[allow(clippy::too_many_lines)]
|
#[allow(clippy::too_many_lines)]
|
||||||
|
|
@ -304,9 +300,13 @@ impl<'a, Message: 'a + Clone> Widget<Message, crate::Theme, crate::Renderer>
|
||||||
viewport: &Rectangle,
|
viewport: &Rectangle,
|
||||||
renderer: &crate::Renderer,
|
renderer: &crate::Renderer,
|
||||||
) -> mouse::Interaction {
|
) -> mouse::Interaction {
|
||||||
self.content
|
self.content.as_widget().mouse_interaction(
|
||||||
.as_widget()
|
&tree.children[0],
|
||||||
.mouse_interaction(tree, layout, cursor, viewport, renderer)
|
layout,
|
||||||
|
cursor,
|
||||||
|
viewport,
|
||||||
|
renderer,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn overlay<'b>(
|
fn overlay<'b>(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue