fix(tracker): reduce visual jitter when adjusting unit parameter sliders

The solution is not to force the slider value when the user is dragging it.

Closes #33
This commit is contained in:
vsariola 2021-02-15 18:11:36 +02:00
parent 024245b780
commit e93190892b

View File

@ -74,7 +74,9 @@ func (t *Tracker) layoutUnitSliders(gtx C) D {
valueText = fmt.Sprintf("%v", value)
}
}
t.ParameterSliders[index].Value = float32(value)
if !t.ParameterSliders[index].Dragging() {
t.ParameterSliders[index].Value = float32(value)
}
sliderStyle := material.Slider(t.Theme, t.ParameterSliders[index], float32(min), float32(max))
sliderStyle.Color = t.Theme.Fg
return layout.Flex{Axis: layout.Horizontal, Alignment: layout.Middle}.Layout(gtx,
@ -95,12 +97,12 @@ func (t *Tracker) layoutUnitSliders(gtx C) D {
t.EditMode = EditParameters
t.CurrentParam = index
if u.Type == "oscillator" && name == "sample" {
v := int(t.ParameterSliders[index].Value) - 1
v := int(t.ParameterSliders[index].Value+0.5) - 1
if v >= 0 {
t.SetGmDlsEntry(v)
}
} else {
t.SetUnitParam(int(t.ParameterSliders[index].Value))
t.SetUnitParam(int(t.ParameterSliders[index].Value + 0.5))
}
}
return dims