summaryrefslogtreecommitdiffstats
path: root/wgpu/src/renderer/column.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-10-11 23:30:53 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-10-11 23:30:53 +0200
commita031a6f2130b3913a2419e4cea859c22aa388213 (patch)
treeafa21d830b0c2eefc7f4e083c33d13c5b462c137 /wgpu/src/renderer/column.rs
parent8846a239cf14edd464b1d09f6d6d57ad9b5c9fc7 (diff)
downloadiced-a031a6f2130b3913a2419e4cea859c22aa388213.tar.gz
iced-a031a6f2130b3913a2419e4cea859c22aa388213.tar.bz2
iced-a031a6f2130b3913a2419e4cea859c22aa388213.zip
Handle mouse cursor in `iced_wgpu`
Diffstat (limited to 'wgpu/src/renderer/column.rs')
-rw-r--r--wgpu/src/renderer/column.rs34
1 files changed, 23 insertions, 11 deletions
diff --git a/wgpu/src/renderer/column.rs b/wgpu/src/renderer/column.rs
index c83a7de1..cac6da77 100644
--- a/wgpu/src/renderer/column.rs
+++ b/wgpu/src/renderer/column.rs
@@ -1,5 +1,5 @@
use crate::{Primitive, Renderer};
-use iced_native::{column, Column, Layout, Point};
+use iced_native::{column, Column, Layout, MouseCursor, Point};
impl column::Renderer for Renderer {
fn draw<Message>(
@@ -8,15 +8,27 @@ impl column::Renderer for Renderer {
layout: Layout<'_>,
cursor_position: Point,
) -> Self::Output {
- Primitive::Group {
- primitives: column
- .children
- .iter()
- .zip(layout.children())
- .map(|(child, layout)| {
- child.draw(self, layout, cursor_position)
- })
- .collect(),
- }
+ let mut mouse_cursor = MouseCursor::OutOfBounds;
+
+ (
+ Primitive::Group {
+ primitives: column
+ .children
+ .iter()
+ .zip(layout.children())
+ .map(|(child, layout)| {
+ let (primitive, new_mouse_cursor) =
+ child.draw(self, layout, cursor_position);
+
+ if new_mouse_cursor > mouse_cursor {
+ mouse_cursor = new_mouse_cursor;
+ }
+
+ primitive
+ })
+ .collect(),
+ },
+ mouse_cursor,
+ )
}
}