gesture,internal/fling: fix rounding

The code tried to extract a rounded whole number of pixels while preserving the
fraction. However, it failed to converge for the value 0.5, rounded to 1,
leaving -0.5, rounded to -1, leaving 0.5 and so on.

Drop the cleverness and truncate the values instead.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
Elias Naur
2019-11-20 18:30:01 +01:00
parent 72840d7b88
commit b39e4227c2
2 changed files with 2 additions and 2 deletions
+1 -1
View File
@@ -205,7 +205,7 @@ func (s *Scroll) Scroll(cfg unit.Converter, q event.Queue, t time.Time, axis Axi
case Vertical:
s.scroll += e.Scroll.Y
}
iscroll := int(math.Round(float64(s.scroll)))
iscroll := int(s.scroll)
s.scroll -= float32(iscroll)
total += iscroll
if !s.dragging || s.pid != e.PointerID {
+1 -1
View File
@@ -85,7 +85,7 @@ func (f *Animation) Tick(now time.Time) int {
ekt := float32(math.Exp(float64(k) * t.Seconds()))
x := f.v0*ekt/k - f.v0/k
dist := x - f.x
idist := int(math.Round(float64(dist)))
idist := int(dist)
f.x += float32(idist)
// Solving for the velocity x'(t) gives us
//