summaryrefslogtreecommitdiffstats
path: root/winit
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-10-10 05:58:42 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-10-10 05:58:42 +0200
commit1f60ca3ab4287b5f9bf605fcb7b3cdcf20e17074 (patch)
tree2d04e2f2cadee90be7c2803f71b4d18e607d7153 /winit
parent2fe01a0b1ee930759d2180fe25666c0701bffd40 (diff)
downloadiced-1f60ca3ab4287b5f9bf605fcb7b3cdcf20e17074.tar.gz
iced-1f60ca3ab4287b5f9bf605fcb7b3cdcf20e17074.tar.bz2
iced-1f60ca3ab4287b5f9bf605fcb7b3cdcf20e17074.zip
Update mouse cursor icon properly in `iced_winit`
Diffstat (limited to 'winit')
-rw-r--r--winit/src/application.rs13
1 files changed, 11 insertions, 2 deletions
diff --git a/winit/src/application.rs b/winit/src/application.rs
index ab6a43f5..ac3a4619 100644
--- a/winit/src/application.rs
+++ b/winit/src/application.rs
@@ -1,6 +1,6 @@
use crate::{
column, conversion, input::mouse, renderer::Windowed, Cache, Column,
- Element, Event, Length, UserInterface,
+ Element, Event, Length, MouseCursor, UserInterface,
};
pub trait Application {
@@ -44,6 +44,7 @@ pub trait Application {
let mut primitive = user_interface.draw(&mut renderer);
let mut cache = Some(user_interface.into_cache());
let mut events = Vec::new();
+ let mut mouse_cursor = MouseCursor::OutOfBounds;
window.request_redraw();
@@ -91,7 +92,15 @@ pub trait Application {
window.request_redraw();
}
event::Event::RedrawRequested(_) => {
- renderer.draw(&mut target, &primitive);
+ let new_mouse_cursor = renderer.draw(&mut target, &primitive);
+
+ if new_mouse_cursor != mouse_cursor {
+ window.set_cursor_icon(conversion::mouse_cursor(
+ new_mouse_cursor,
+ ));
+
+ mouse_cursor = new_mouse_cursor;
+ }
// TODO: Handle animations!
// Maybe we can use `ControlFlow::WaitUntil` for this.