flutter/dev/benchmarks
Jonah Williams 29898812d4
[framework] make hit slop based on device pointer kind for drag/pan/scale gestures (#64267)
Currently the framework uses fairly large "hit slop" values to disambiguate taps from drags/pans. This makes sense on touch devices where the interaction is not very precise, on mice however it can feel as if the UI is lagging. This is immediately noticeable on our infra dashboard, where it takes almost half of a grid square of drag before the actual drag kicks in.

One potential solution is to always use smaller constants depending on whether the interaction is mouse or touch based. The only reasonable choice is to use the pointer device kind and not target platform - same platform can have different input sources. This requires exposing the pointer device kind in a few new places in several of the gesture detectors, and using the enum to compute the correct hit slop from an expanded set of constants.

This almost works, however there are a few places (notably ListViews) which uses the touch hit slop as a default value in scroll physics. It does not seem like it will be easy to disambiguate a user provided scroll physics constant from the default and/or adjust it somehow - this might require significant changes to scroll physics which I have left out of this PR.

This PR does not adjust:

kTouchSlop used in scroll_physics.dart's minFlingDistance
kTouchSlop used in PrimaryPointerGestureRecognizer/LongPressGestureRecognizer
2020-09-08 15:53:36 -07:00
..
complex_layout Require xcode_backend.sh arguments (introduced in Flutter v0.0.7) (#65124) 2020-09-02 16:33:26 -07:00
macrobenchmarks re-enable the post_backdrop_filter test with CPU/GPU measurements (#65201) 2020-09-04 18:00:02 -07:00
microbenchmarks [framework] make hit slop based on device pointer kind for drag/pan/scale gestures (#64267) 2020-09-08 15:53:36 -07:00
platform_views_layout Require xcode_backend.sh arguments (introduced in Flutter v0.0.7) (#65124) 2020-09-02 16:33:26 -07:00
platform_views_layout_hybrid_composition Require xcode_backend.sh arguments (introduced in Flutter v0.0.7) (#65124) 2020-09-02 16:33:26 -07:00
test_apps/stocks [gen_l10n] Synthetic package generation by default (#62395) 2020-08-31 13:19:41 +08:00