From c0c6677bcf32e72de28e7727607757c5bb388432 Mon Sep 17 00:00:00 2001 From: Robbert van der Helm Date: Tue, 8 Nov 2022 22:04:21 +0100 Subject: [PATCH] Add finer steps to ParamSlider --- nih_plug_vizia/src/widgets/param_slider.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/nih_plug_vizia/src/widgets/param_slider.rs b/nih_plug_vizia/src/widgets/param_slider.rs index 461a3bcb..c32f2f7b 100644 --- a/nih_plug_vizia/src/widgets/param_slider.rs +++ b/nih_plug_vizia/src/widgets/param_slider.rs @@ -562,6 +562,8 @@ impl View for ParamSlider { self.scrolled_lines += scroll_y; if self.scrolled_lines.abs() >= 1.0 { + let use_finer_steps = cx.modifiers.shift(); + // Scrolling while dragging needs to be taken into account here if !self.drag_active { self.param_base.begin_set_parameter(cx); @@ -570,7 +572,9 @@ impl View for ParamSlider { let mut current_value = self.param_base.unmodulated_normalized_value(); while self.scrolled_lines >= 1.0 { - current_value = self.param_base.next_normalized_step(current_value, false); + current_value = self + .param_base + .next_normalized_step(current_value, use_finer_steps); self.param_base.set_normalized_value(cx, current_value); self.scrolled_lines -= 1.0; } @@ -578,7 +582,7 @@ impl View for ParamSlider { while self.scrolled_lines <= -1.0 { current_value = self .param_base - .previous_normalized_step(current_value, false); + .previous_normalized_step(current_value, use_finer_steps); self.param_base.set_normalized_value(cx, current_value); self.scrolled_lines += 1.0; }