diff --git a/widget/src/slider.rs b/widget/src/slider.rs index 8aa697cd..8adff568 100644 --- a/widget/src/slider.rs +++ b/widget/src/slider.rs @@ -533,9 +533,19 @@ where let state = tree.state.downcast_ref::(); if state.is_dragging { - mouse::Interaction::Grabbing + // FIXME: Fall back to `Pointer` on Windows + // See https://github.com/rust-windowing/winit/issues/1043 + if cfg!(target_os = "windows") { + mouse::Interaction::Pointer + } else { + mouse::Interaction::Grabbing + } } else if cursor.is_over(layout.bounds()) { - mouse::Interaction::Grab + if cfg!(target_os = "windows") { + mouse::Interaction::Pointer + } else { + mouse::Interaction::Grab + } } else { mouse::Interaction::default() } diff --git a/widget/src/vertical_slider.rs b/widget/src/vertical_slider.rs index d14941cd..e8544b0b 100644 --- a/widget/src/vertical_slider.rs +++ b/widget/src/vertical_slider.rs @@ -525,9 +525,19 @@ where let state = tree.state.downcast_ref::(); if state.is_dragging { - mouse::Interaction::Grabbing + // FIXME: Fall back to `Pointer` on Windows + // See https://github.com/rust-windowing/winit/issues/1043 + if cfg!(target_os = "windows") { + mouse::Interaction::Pointer + } else { + mouse::Interaction::Grabbing + } } else if cursor.is_over(layout.bounds()) { - mouse::Interaction::Grab + if cfg!(target_os = "windows") { + mouse::Interaction::Pointer + } else { + mouse::Interaction::Grab + } } else { mouse::Interaction::default() }