Skip to content

Commit

Permalink
Mouse interaction to hide system cursor
Browse files Browse the repository at this point in the history
  • Loading branch information
thorn132 committed Dec 5, 2024
1 parent 9c93341 commit 4fb04af
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 8 deletions.
1 change: 1 addition & 0 deletions core/src/mouse/interaction.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
pub enum Interaction {
#[default]
None,
Hidden,
Idle,
Pointer,
Grab,
Expand Down
11 changes: 8 additions & 3 deletions winit/src/conversion.rs
Original file line number Diff line number Diff line change
Expand Up @@ -427,10 +427,13 @@ pub fn mode(mode: Option<winit::window::Fullscreen>) -> window::Mode {
/// [`winit`]: https://github.com/rust-windowing/winit
pub fn mouse_interaction(
interaction: mouse::Interaction,
) -> winit::window::CursorIcon {
) -> Option<winit::window::CursorIcon> {
use mouse::Interaction;

match interaction {
let icon = match interaction {
Interaction::Hidden => {
return None;
}
Interaction::None | Interaction::Idle => {
winit::window::CursorIcon::Default
}
Expand All @@ -457,7 +460,9 @@ pub fn mouse_interaction(
Interaction::Move => winit::window::CursorIcon::Move,
Interaction::Copy => winit::window::CursorIcon::Copy,
Interaction::Help => winit::window::CursorIcon::Help,
}
};

Some(icon)
}

/// Converts a `MouseButton` from [`winit`] to an [`iced`] mouse button.
Expand Down
17 changes: 12 additions & 5 deletions winit/src/program.rs
Original file line number Diff line number Diff line change
Expand Up @@ -881,11 +881,18 @@ async fn run_instance<P, C>(
debug.draw_finished();

if new_mouse_interaction != window.mouse_interaction {
window.raw.set_cursor(
conversion::mouse_interaction(
new_mouse_interaction,
),
);
if let Some(icon) = conversion::mouse_interaction(
new_mouse_interaction,
) {
window.raw.set_cursor(icon);
if window.mouse_interaction
== mouse::Interaction::Hidden
{
window.raw.set_cursor_visible(true);
}
} else {
window.raw.set_cursor_visible(false);
}

window.mouse_interaction = new_mouse_interaction;
}
Expand Down

0 comments on commit 4fb04af

Please sign in to comment.