Open Bug 1893306 Opened 9 months ago Updated 5 days ago

Unexpected horizontal scrolling at the end of a vertical pan - lifting the finger breaks the axis lock

Categories

(Core :: Panning and Zooming, defect, P3)

defect

Tracking

()

People

(Reporter: mstange, Assigned: dlrobertson)

References

(Blocks 2 open bugs)

Details

Attachments

(4 files)

Attached video screen recording

On Android, when panning to the bottom of a page that's scrollable on both axes, the page sometimes scrolls horizontally once the finger is lifted.

Steps to reproduce:

  1. Go to https://phabricator.services.mozilla.com/D208427
  2. Scroll to the bottom with a series of flings.

Sometimes the page ends up being scrolled horizontally once you reach the bottom, because the scroll gesture happened to be slightly diagonal.

This is unexpected - if we only scroll vertically while the fingers are on the screen, then we should continue to only scroll vertically once the fingers are no longer on the screen.


I think what happens is that, when we initiate the fling at the end of the pan, we don't respect the current axis lock, so we can initiate a horizontal fling even if the pan was locked vertically.

It's often easier to reproduce this in the other direction - horizontal pans starting vertical flings.

In this recording, I did a horizontal pan, and then started moving my fingers vertically, before I lifted them. The vertical motion is ignored while the fingers are on the screen, but then gets translated into a vertical fling once the fingers are lifted.

Blocks: perf-android
Blocks: 1895538

The severity field is not set for this bug.
:botond, could you have a look please?

For more information, please visit BugBot documentation.

Flags: needinfo?(botond)
Severity: -- → S3
Flags: needinfo?(botond)
Priority: -- → P3
Assignee: nobody → drobertson

Ensure that a fling animation following a touch scroll respects the axis
lock used durring the gesture.

Are we waiting for additional changes or reviews on these patches? Just checking in. Thanks.

Flags: needinfo?(drobertson)

Just got some extra info on the patch... I'll figure out next steps today.

Flags: needinfo?(drobertson)

Not all flings should allow for handoff. A overscroll fling should be
able to handoff residual velocity to a APZC earlier in the overscroll
handoff chain, but a fling that starts in an APZC that is not scrollable
in the given direction should not handoff.

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: