Prevent onPanStart from being fired from pointercancel event #1118
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This improves behavior on Android associated with #1050. This is reproducible when panning content that also scrolls vertically - if you scroll the content hammer is firing a spurious
onPanStart
event, and the state machine gets messed up for subsequent pan events until you scroll horizontally again.I've created a simple test application that demonstrates the problem: https://github.com/MattKunze/swipe-handler
You can reproduce the behavior in Chrome by simulating a device. The following video shows the behavior - the first swipe works because the scroll position isn't changed, after scrolling vertically you see the incorrect
onPanStart
event, and panning doesn't work until it resets after the stream of touch events ends, then you can repeat the process:Note that I'm still needing to reject events where
ev.srcEvent.type === 'pointercancel'
, but this is needed to fix the behavior where a lot of pans aren't recognized on Android in the first place