diff options
| author | 2019-10-10 05:58:42 +0200 | |
|---|---|---|
| committer | 2019-10-10 05:58:42 +0200 | |
| commit | 1f60ca3ab4287b5f9bf605fcb7b3cdcf20e17074 (patch) | |
| tree | 2d04e2f2cadee90be7c2803f71b4d18e607d7153 /winit/src | |
| parent | 2fe01a0b1ee930759d2180fe25666c0701bffd40 (diff) | |
| download | iced-1f60ca3ab4287b5f9bf605fcb7b3cdcf20e17074.tar.gz iced-1f60ca3ab4287b5f9bf605fcb7b3cdcf20e17074.tar.bz2 iced-1f60ca3ab4287b5f9bf605fcb7b3cdcf20e17074.zip  | |
Update mouse cursor icon properly in `iced_winit`
Diffstat (limited to '')
| -rw-r--r-- | winit/src/application.rs | 13 | 
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.  | 
