mirror of
https://github.com/vsariola/sointu.git
synced 2025-07-18 13:04:25 -04:00
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:
@ -74,7 +74,9 @@ func (t *Tracker) layoutUnitSliders(gtx C) D {
|
|||||||
valueText = fmt.Sprintf("%v", value)
|
valueText = fmt.Sprintf("%v", value)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if !t.ParameterSliders[index].Dragging() {
|
||||||
t.ParameterSliders[index].Value = float32(value)
|
t.ParameterSliders[index].Value = float32(value)
|
||||||
|
}
|
||||||
sliderStyle := material.Slider(t.Theme, t.ParameterSliders[index], float32(min), float32(max))
|
sliderStyle := material.Slider(t.Theme, t.ParameterSliders[index], float32(min), float32(max))
|
||||||
sliderStyle.Color = t.Theme.Fg
|
sliderStyle.Color = t.Theme.Fg
|
||||||
return layout.Flex{Axis: layout.Horizontal, Alignment: layout.Middle}.Layout(gtx,
|
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.EditMode = EditParameters
|
||||||
t.CurrentParam = index
|
t.CurrentParam = index
|
||||||
if u.Type == "oscillator" && name == "sample" {
|
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 {
|
if v >= 0 {
|
||||||
t.SetGmDlsEntry(v)
|
t.SetGmDlsEntry(v)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
t.SetUnitParam(int(t.ParameterSliders[index].Value))
|
t.SetUnitParam(int(t.ParameterSliders[index].Value + 0.5))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return dims
|
return dims
|
||||||
|
Reference in New Issue
Block a user