From 768051f84f2e86ea8fd5991b4940923280a8e4b5 Mon Sep 17 00:00:00 2001 From: Talin Date: Wed, 9 Jul 2025 08:04:57 -0700 Subject: [PATCH] Clamp after rounding. --- crates/bevy_core_widgets/src/core_slider.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/crates/bevy_core_widgets/src/core_slider.rs b/crates/bevy_core_widgets/src/core_slider.rs index ba38f0de26..07efc7e800 100644 --- a/crates/bevy_core_widgets/src/core_slider.rs +++ b/crates/bevy_core_widgets/src/core_slider.rs @@ -355,13 +355,15 @@ pub(crate) fn slider_on_drag( let slider_width = ((node.size().x - thumb_size) * node.inverse_scale_factor).max(1.0); let span = range.span(); let new_value = if span > 0. { - range.clamp(drag.offset + (distance.x * span) / slider_width) + drag.offset + (distance.x * span) / slider_width } else { range.start() + span * 0.5 }; - let rounded_value = precision - .map(|prec| prec.round(new_value)) - .unwrap_or(new_value); + let rounded_value = range.clamp( + precision + .map(|prec| prec.round(new_value)) + .unwrap_or(new_value), + ); if matches!(slider.on_change, Callback::Ignore) { commands