summaryrefslogtreecommitdiffstats
path: root/wgpu/src/widget
diff options
context:
space:
mode:
Diffstat (limited to 'wgpu/src/widget')
-rw-r--r--wgpu/src/widget/canvas.rs2
-rw-r--r--wgpu/src/widget/canvas/program.rs9
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)
+ }
}