From e93190892b9ea1b70f7cb6f8501894da0ad1547d Mon Sep 17 00:00:00 2001 From: vsariola <5684185+vsariola@users.noreply.github.com> Date: Mon, 15 Feb 2021 18:11:36 +0200 Subject: [PATCH] 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 --- tracker/uniteditor.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tracker/uniteditor.go b/tracker/uniteditor.go index f7b7b4f..20504d2 100644 --- a/tracker/uniteditor.go +++ b/tracker/uniteditor.go @@ -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