Closed Bug 711025 Opened 13 years ago Closed 11 years ago

Flinging waits for fling to finish on both axes before snapping back on either axis

Categories

(Firefox for Android Graveyard :: General, defect, P5)

All
Android
defect

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: cwiiis, Unassigned)

Details

If you fling so that you initiate a long kinetic pan and it overscrolls on one axis, it waits for the fling to finish before snapping back on that axis. It should snap back immediately while flinging.
Wasn't this behaviour done by design? I remember a comment in the code from pcwalton saying it felt weird snapping one axis while the other was still flinging.
Yes. If you change that behavior, then what will happen is that when you fling diagonally, you get a weird-looking effect in which one side starts snapping back, the other side overscrolls, and then finally it snaps back.

That said, we can always tune our heuristics for when to snap back. In particular there are still some cases in which we wait too long and it looks like overscroll is hung. (I think there are bad interactions with the axis lock.)
This makes some sense when both axes are in over-scroll (to wait for both to stop before snapping back), but doesn't make sense when one axis is in over-scroll and the other is flinging.

For example, if you fling diagonally downwards, you have an exposed grey area as you scroll down - until you stop, then it suddenly snaps back. This looks and feels very odd.
I'm open to experimentation here, but if you change this, you'll have to bring back per-axis bounce, which is something that led to a lot of brokenness in the past.

I'm also not convinced that this would look better than what we have now:
(1) X axis goes into overscroll. Y axis is flinging.
(2) X axis starts bouncing back. Y axis is still flinging.
(3) X axis is still bouncing back. Y axis goes into overscroll.
(4) X axis is still bouncing back. Y axis starts bouncing back.
(5) X axis finishes bouncing back. Y axis is bouncing back.
(6) X axis is stopped. Y axis finishes bouncing back.

It looked better to me to have both axes finish bouncing back at the same time in that scenario.
I think that's the much rarer situation you've described there though, vs. the quite common long-page-slightly-wider-than-screen situation. What I see is:

(1) Initiate long diagonal fling
(2) X axis goes into overscroll. Y axis is flinging.
(3) X axis stops flinging, but remains over-scrolled. Y axis continues flinging.
(4) Y axis stops flinging.
(5) X axis bounces back.

This feels *very* odd and I think we should avoid it. I can record a video if it makes it clearer? Or do you just disagree that that's an unusual thing to happen?
Priority: -- → P5
Pretty sure we're not going to fix this. We're turning off overscroll anyway so this is a moot point.
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → WONTFIX
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in before you can comment on or make changes to this bug.