Clamp after rounding.

This commit is contained in:
Talin 2025-07-09 08:04:57 -07:00
parent 88c0c08fb0
commit 768051f84f

View File

@ -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 slider_width = ((node.size().x - thumb_size) * node.inverse_scale_factor).max(1.0);
let span = range.span(); let span = range.span();
let new_value = if span > 0. { let new_value = if span > 0. {
range.clamp(drag.offset + (distance.x * span) / slider_width) drag.offset + (distance.x * span) / slider_width
} else { } else {
range.start() + span * 0.5 range.start() + span * 0.5
}; };
let rounded_value = precision let rounded_value = range.clamp(
.map(|prec| prec.round(new_value)) precision
.unwrap_or(new_value); .map(|prec| prec.round(new_value))
.unwrap_or(new_value),
);
if matches!(slider.on_change, Callback::Ignore) { if matches!(slider.on_change, Callback::Ignore) {
commands commands