Avoid calling `SetDelayedTransformEnd(false)` in ScrollSnapToDestination if the snap destination will not be changed
Categories
(Core :: Panning and Zooming, defect, P2)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox152 | --- | fixed |
People
(Reporter: hiro, Assigned: hiro)
References
Details
Attachments
(3 files)
The code is:
// Ensure that any queued transform-end due to a pan-end is not
// sent. Instead rely on the transform-end sent due to the
// scroll snap animation.
SetDelayedTransformEnd(false);
Due to the unconditional calling ofSetDelayedTransformEnd(false) `, scrollend event is not fired.
This is another cause of the test failure caused by D294084.
| Assignee | ||
Comment 1•4 months ago
|
||
| Assignee | ||
Comment 2•4 months ago
|
||
The modified aStartPosition is never used.
| Assignee | ||
Comment 3•4 months ago
|
||
When OnPanEnd queues a delayed transform-end notification and then calls
ScrollSnapToDestination, taking the snap branch in
MaybeAdjustDeltaForScrollSnapping unconditionally clears the queued
transform-end via SetDelayedTransformEnd(false), on the assumption that
the subsequent SmoothScrollTo will deliver its own. If the snap
destination is identical to the start position, SmoothScrollTo has
nothing to animate and no transform-end is sent, so the scrollend event
is lost.
Only call SetDelayedTransformEnd(false) when the snap destination
actually differs from the start position. We still enter the snap branch
and call SmoothScrollTo so that the last snap target IDs are updated.
Updated•4 months ago
|
Updated•4 months ago
|
Updated•4 months ago
|
Updated•4 months ago
|
Comment 5•3 months ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/38d462a75ed5
https://hg.mozilla.org/mozilla-central/rev/600f6178d6b1
https://hg.mozilla.org/mozilla-central/rev/3a473ace49be
Updated•3 months ago
|
Description
•