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> Widget .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 { fn update(&mut self, _event: Event, _bounds: Size) -> Option { @@ -6,6 +7,10 @@ pub trait Program { } fn draw(&self, bounds: Size) -> Vec; + + fn mouse_cursor(&self, _bounds: Size) -> MouseCursor { + MouseCursor::default() + } } impl Program for &mut T @@ -19,4 +24,8 @@ where fn draw(&self, bounds: Size) -> Vec { T::draw(self, bounds) } + + fn mouse_cursor(&self, bounds: Size) -> MouseCursor { + T::mouse_cursor(self, bounds) + } }