summaryrefslogtreecommitdiffstats
path: root/widget/src/tooltip.rs
diff options
context:
space:
mode:
Diffstat (limited to 'widget/src/tooltip.rs')
-rw-r--r--widget/src/tooltip.rs25
1 files changed, 13 insertions, 12 deletions
diff --git a/widget/src/tooltip.rs b/widget/src/tooltip.rs
index e98f4da7..a0ffe392 100644
--- a/widget/src/tooltip.rs
+++ b/widget/src/tooltip.rs
@@ -22,7 +22,6 @@
//! }
//! ```
use crate::container;
-use crate::core::event::{self, Event};
use crate::core::layout::{self, Layout};
use crate::core::mouse;
use crate::core::overlay;
@@ -30,8 +29,8 @@ use crate::core::renderer;
use crate::core::text;
use crate::core::widget::{self, Widget};
use crate::core::{
- Clipboard, Element, Length, Padding, Pixels, Point, Rectangle, Shell, Size,
- Vector,
+ Clipboard, Element, Event, Length, Padding, Pixels, Point, Rectangle,
+ Shell, Size, Vector,
};
/// An element to display a widget over another.
@@ -143,8 +142,8 @@ where
}
}
-impl<'a, Message, Theme, Renderer> Widget<Message, Theme, Renderer>
- for Tooltip<'a, Message, Theme, Renderer>
+impl<Message, Theme, Renderer> Widget<Message, Theme, Renderer>
+ for Tooltip<'_, Message, Theme, Renderer>
where
Theme: container::Catalog,
Renderer: text::Renderer,
@@ -190,7 +189,7 @@ where
.layout(&mut tree.children[0], renderer, limits)
}
- fn on_event(
+ fn update(
&mut self,
tree: &mut widget::Tree,
event: Event,
@@ -200,7 +199,7 @@ where
clipboard: &mut dyn Clipboard,
shell: &mut Shell<'_, Message>,
viewport: &Rectangle,
- ) -> event::Status {
+ ) {
let state = tree.state.downcast_mut::<State>();
let was_idle = *state == State::Idle;
@@ -214,9 +213,12 @@ where
if was_idle != is_idle {
shell.invalidate_layout();
+ shell.request_redraw();
+ } else if !is_idle && self.position == Position::FollowCursor {
+ shell.request_redraw();
}
- self.content.as_widget_mut().on_event(
+ self.content.as_widget_mut().update(
&mut tree.children[0],
event,
layout,
@@ -225,7 +227,7 @@ where
clipboard,
shell,
viewport,
- )
+ );
}
fn mouse_interaction(
@@ -370,9 +372,8 @@ where
class: &'b Theme::Class<'a>,
}
-impl<'a, 'b, Message, Theme, Renderer>
- overlay::Overlay<Message, Theme, Renderer>
- for Overlay<'a, 'b, Message, Theme, Renderer>
+impl<Message, Theme, Renderer> overlay::Overlay<Message, Theme, Renderer>
+ for Overlay<'_, '_, Message, Theme, Renderer>
where
Theme: container::Catalog,
Renderer: text::Renderer,