Invalidate tooltip layout on mouse events
This commit is contained in:
parent
f9de884655
commit
4cd35f7462
1 changed files with 14 additions and 14 deletions
|
|
@ -202,23 +202,23 @@ where
|
||||||
shell: &mut Shell<'_, Message>,
|
shell: &mut Shell<'_, Message>,
|
||||||
viewport: &Rectangle,
|
viewport: &Rectangle,
|
||||||
) {
|
) {
|
||||||
let state = tree.state.downcast_mut::<State>();
|
if let Event::Mouse(_) = event {
|
||||||
|
let state = tree.state.downcast_mut::<State>();
|
||||||
|
let was_idle = *state == State::Idle;
|
||||||
|
|
||||||
let previous_state = *state;
|
*state = cursor
|
||||||
let was_idle = *state == State::Idle;
|
.position_over(layout.bounds())
|
||||||
|
.map(|cursor_position| State::Hovered { cursor_position })
|
||||||
|
.unwrap_or_default();
|
||||||
|
|
||||||
*state = cursor
|
let is_idle = *state == State::Idle;
|
||||||
.position_over(layout.bounds())
|
|
||||||
.map(|cursor_position| State::Hovered { cursor_position })
|
|
||||||
.unwrap_or_default();
|
|
||||||
|
|
||||||
let is_idle = *state == State::Idle;
|
if was_idle != is_idle {
|
||||||
|
shell.invalidate_layout();
|
||||||
if was_idle != is_idle
|
shell.request_redraw();
|
||||||
|| (self.position == Position::FollowCursor
|
} else if self.position == Position::FollowCursor {
|
||||||
&& previous_state != *state)
|
shell.request_redraw();
|
||||||
{
|
}
|
||||||
shell.request_redraw();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
self.content.as_widget_mut().update(
|
self.content.as_widget_mut().update(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue