Fix: Momentum scrolling continues despite press and hold in list view #196
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.
Fixes / Closes (optional)
Fixes #190.
Description
This PR fixes an incorrect use of the
ScrollActivity.shouldIgnorePointer
flag that has caused the issue.Previously,
DragScrollDrivenSheetActivity
used to start aSheetContentBallisticScrollActivity
withshouldIgnorePointer
set tofalse
when a drag gesture ended. However, it should actually betrue
except in a special case. This is because settingScrollActivity.shouldIgnorePointer
totrue
means that clickable items in the scroll view cannot receive pointer events while performing that activity, and the scroll view may receive them instead. So if the flag is set tofalse
during a ballistic scroll animation and there are any clickable items in the scroll view, the scroll view may not be able to receive the pointer events, resulting in the ballistic scroll animation not stopping in response to user gestures.After this PR is merged,
SheetContentBallisticScrollActivity
will be started with the same value ofshouldIgnorePointer
as the previousScrollActivity
. Note that we can't use a hardcoded value oftrue
here, as it may need to befalse
in a special case where the pointer device kind isPointerDeviceKind.trackpad
.Summary (check all that apply)