Fix slider same value check with discrete params
Because the check was done against the normalized value, before snapping. This required adding `PartialEq` to the `Plain` type.
This commit is contained in:
parent
03eef2c832
commit
0dd71cf644
|
@ -55,6 +55,10 @@ impl<'a, P: Param> ParamSlider<'a, P> {
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn plain_value(&self) -> P::Plain {
|
||||||
|
self.param.plain_value()
|
||||||
|
}
|
||||||
|
|
||||||
fn normalized_value(&self) -> f32 {
|
fn normalized_value(&self) -> f32 {
|
||||||
self.param.normalized_value()
|
self.param.normalized_value()
|
||||||
}
|
}
|
||||||
|
@ -64,12 +68,12 @@ impl<'a, P: Param> ParamSlider<'a, P> {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn set_normalized_value(&self, normalized: f32) {
|
fn set_normalized_value(&self, normalized: f32) {
|
||||||
if normalized != self.normalized_value() {
|
// This snaps to the nearest plain value if the parameter is stepped in some way.
|
||||||
// This snaps to the nearest plain value if the parameter is stepped in some wayA
|
|
||||||
// TODO: As an optimization, we could add a `const CONTINUOUS: bool` to the parameter to
|
// TODO: As an optimization, we could add a `const CONTINUOUS: bool` to the parameter to
|
||||||
// avoid this normalized->plain->normalized conversion for parameters that don't need
|
// avoid this normalized->plain->normalized conversion for parameters that don't need
|
||||||
// it
|
// it
|
||||||
let value = self.param.preview_plain(normalized);
|
let value = self.param.preview_plain(normalized);
|
||||||
|
if value != self.plain_value() {
|
||||||
self.setter.set_parameter(self.param, value);
|
self.setter.set_parameter(self.param, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue