summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--native/src/user_interface.rs11
-rw-r--r--winit/src/conversion.rs6
2 files changed, 15 insertions, 2 deletions
diff --git a/native/src/user_interface.rs b/native/src/user_interface.rs
index 5d9221e9..88ffd6d6 100644
--- a/native/src/user_interface.rs
+++ b/native/src/user_interface.rs
@@ -188,8 +188,15 @@ where
let mut messages = Vec::new();
for event in events {
- if let Event::Mouse(mouse::Event::CursorMoved { x, y }) = event {
- self.cursor_position = Point::new(x, y);
+ match event {
+ Event::Mouse(mouse::Event::CursorMoved { x, y }) => {
+ self.cursor_position = Point::new(x, y);
+ }
+ Event::Mouse(mouse::Event::CursorLeft) => {
+ // TODO: Encode cursor availability
+ self.cursor_position = Point::new(-1.0, -1.0);
+ }
+ _ => {}
}
self.root.widget.on_event(
diff --git a/winit/src/conversion.rs b/winit/src/conversion.rs
index eaa26ace..78686424 100644
--- a/winit/src/conversion.rs
+++ b/winit/src/conversion.rs
@@ -27,6 +27,12 @@ pub fn window_event(
height: logical_size.height,
}))
}
+ WindowEvent::CursorEntered { .. } => {
+ Some(Event::Mouse(mouse::Event::CursorEntered))
+ }
+ WindowEvent::CursorLeft { .. } => {
+ Some(Event::Mouse(mouse::Event::CursorLeft))
+ }
WindowEvent::CursorMoved { position, .. } => {
let position = position.to_logical::<f64>(scale_factor);