-
Notifications
You must be signed in to change notification settings - Fork 29.8k
Description
With Flutter web on some desktop platforms (Windows and Linux), we do not know the difference between a trackpad and a physical mouse scroll wheel when the input is received by the framework. Because of this, both mouse and trackpad input is treated the same way, going through the pointerScroll method of ScrollPosition to handle the input.
When we know the difference, the trackpad is handled differently, supporting other interactions like panning, zooming, smoothing of input in accordance with the scroll physics upon release, etc. This should be available on all platforms, not just some.
For Mac, a heuristic was developed to tell the difference between these input devices, and has worked really well:
We need to do the same for Windows and Linux so that the experience is consistent across all platforms.
This is also needed to resolve #32120