diff options
-rw-r--r-- | wgpu/src/widget/canvas.rs | 2 | ||||
-rw-r--r-- | wgpu/src/widget/canvas/program.rs | 9 |
2 files changed, 10 insertions, 1 deletions
diff --git a/wgpu/src/widget/canvas.rs b/wgpu/src/widget/canvas.rs index c0506cf7..0006ca8d 100644 --- a/wgpu/src/widget/canvas.rs +++ b/wgpu/src/widget/canvas.rs @@ -210,7 +210,7 @@ impl<Message, P: Program<Message>> Widget<Message, Renderer> .collect(), }), }, - MouseCursor::Idle, + self.program.mouse_cursor(size), ) } diff --git a/wgpu/src/widget/canvas/program.rs b/wgpu/src/widget/canvas/program.rs index 8e35fdfb..9e4aca89 100644 --- a/wgpu/src/widget/canvas/program.rs +++ b/wgpu/src/widget/canvas/program.rs @@ -1,4 +1,5 @@ use crate::canvas::{Event, Geometry, Size}; +use iced_native::MouseCursor; pub trait Program<Message> { fn update(&mut self, _event: Event, _bounds: Size) -> Option<Message> { @@ -6,6 +7,10 @@ pub trait Program<Message> { } fn draw(&self, bounds: Size) -> Vec<Geometry>; + + fn mouse_cursor(&self, _bounds: Size) -> MouseCursor { + MouseCursor::default() + } } impl<T, Message> Program<Message> for &mut T @@ -19,4 +24,8 @@ where fn draw(&self, bounds: Size) -> Vec<Geometry> { T::draw(self, bounds) } + + fn mouse_cursor(&self, bounds: Size) -> MouseCursor { + T::mouse_cursor(self, bounds) + } } |