From b9f6543cf5aff2b2e140d749f19d4e243b06eee6 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Fri, 19 Jun 2020 20:05:01 +0200 Subject: [PATCH] gesture: always drag scroll on Android Mice drags scroll on Android by convention. Further, ChromeOS converts two-finger touchpad scroll gestures to press-drag with Source == Mouse. Signed-off-by: Elias Naur --- gesture/gesture.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gesture/gesture.go b/gesture/gesture.go index e13240b7..d9e8e2e5 100644 --- a/gesture/gesture.go +++ b/gesture/gesture.go @@ -11,6 +11,7 @@ package gesture import ( "math" + "runtime" "time" "gioui.org/f32" @@ -217,7 +218,12 @@ func (s *Scroll) Scroll(cfg unit.Metric, q event.Queue, t time.Time, axis Axis) } switch e.Type { case pointer.Press: - if s.dragging || e.Source != pointer.Touch { + if s.dragging { + break + } + // Only scroll on touch drags, or on Android where mice + // drags also scroll by convention. + if e.Source != pointer.Touch && runtime.GOOS != "android" { break } s.Stop()