From de02f7d0429656337dff05c221b48f1b9995a5bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Violeta=20Hern=C3=A1ndez?= Date: Tue, 18 May 2021 13:03:04 -0500 Subject: [PATCH] Value of `DragValue` correctly clamped (#405) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update drag_value.rs * `value` → `old_value` --- egui/src/widgets/drag_value.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/egui/src/widgets/drag_value.rs b/egui/src/widgets/drag_value.rs index ef2a97b3..c7305114 100644 --- a/egui/src/widgets/drag_value.rs +++ b/egui/src/widgets/drag_value.rs @@ -220,8 +220,11 @@ impl<'a> Widget for DragValue<'a> { let is_slow_speed = ui.input().modifiers.shift_only() && ui.memory().is_being_dragged(ui.next_auto_id()); - let value = get(&mut get_set_value); - let value = clamp_to_range(value, clamp_range.clone()); + let old_value = get(&mut get_set_value); + let value = clamp_to_range(old_value, clamp_range.clone()); + if old_value != value { + set(&mut get_set_value, value); + } let aim_rad = ui.input().aim_radius() as f64; let auto_decimals = (aim_rad / speed.abs()).log10().ceil().clamp(0.0, 15.0) as usize; @@ -334,7 +337,7 @@ impl<'a> Widget for DragValue<'a> { response }; - response.changed = get(&mut get_set_value) != value; + response.changed = get(&mut get_set_value) != old_value; response.widget_info(|| WidgetInfo::drag_value(value)); response