Invalidate tooltip layout on mouse events

This commit is contained in:
Héctor Ramón Jiménez 2025-09-12 20:06:59 +02:00
parent f9de884655
commit 4cd35f7462
No known key found for this signature in database
GPG key ID: 7CC46565708259A7

View file

@ -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(