Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(cdk/drag-drop): don't block scrolling if it happens before delay has elapsed #21382

Merged
merged 1 commit into from
Jan 6, 2021

Conversation

crisbeto
Copy link
Member

The DragRef has the ability to add a delay to the dragging so that scrolling isn't blocked on touch devices. Currently this doesn't really work, because we always block the native event as a result of a949db3.
These changes move some code around so that we only block the events if the item considers itself as being in a "dragged" state (the delay has elapsed and the user is past the drag threshold).

Fixes #17923.

@crisbeto crisbeto added P2 The issue is important to a large percentage of users, with a workaround target: patch This PR is targeted for the next patch release labels Dec 17, 2020
@google-cla google-cla bot added the cla: yes PR author has agreed to Google's Contributor License Agreement label Dec 17, 2020
@crisbeto crisbeto force-pushed the 17923/drag-drop-delay-prevent branch from 7f94f2b to 495bf47 Compare December 17, 2020 19:41
…has elapsed

The `DragRef` has the ability to add a delay to the dragging so that scrolling isn't
blocked on touch devices. Currently this doesn't really work, because we always
block the native event as a result of a949db3.
These changes move some code around so that we only block the events if the
item considers itself as being in a "dragged" state (the delay has elapsed and the
user is past the drag threshold).

Fixes angular#17923.
@crisbeto crisbeto force-pushed the 17923/drag-drop-delay-prevent branch from 495bf47 to eb7d3ab Compare December 18, 2020 12:29
Copy link
Member

@jelbourn jelbourn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@jelbourn jelbourn added the action: merge The PR is ready for merge by the caretaker label Jan 5, 2021
@annieyw annieyw merged commit eb318d9 into angular:master Jan 6, 2021
annieyw pushed a commit that referenced this pull request Jan 6, 2021
…has elapsed (#21382)

The `DragRef` has the ability to add a delay to the dragging so that scrolling isn't
blocked on touch devices. Currently this doesn't really work, because we always
block the native event as a result of a949db3.
These changes move some code around so that we only block the events if the
item considers itself as being in a "dragged" state (the delay has elapsed and the
user is past the drag threshold).

Fixes #17923.

(cherry picked from commit eb318d9)
wagnermaciel pushed a commit to wagnermaciel/components that referenced this pull request Jan 14, 2021
…has elapsed (angular#21382)

The `DragRef` has the ability to add a delay to the dragging so that scrolling isn't
blocked on touch devices. Currently this doesn't really work, because we always
block the native event as a result of a949db3.
These changes move some code around so that we only block the events if the
item considers itself as being in a "dragged" state (the delay has elapsed and the
user is past the drag threshold).

Fixes angular#17923.
crisbeto added a commit to crisbeto/material2 that referenced this pull request Jan 30, 2021
In angular#21382 the `preventDefault` call was moved further down so it doesn't prevent events until
the dragging threshold has been reached. The problem is that it'll only start calling `preventDefault`
from the first event __after__ the threshold has been reached which can be enough time for the device
to start scrolling.

These changes add an extra call as soon as dragging has been considered as "started".

Fixes angular#21749.
annieyw pushed a commit that referenced this pull request Feb 5, 2021
In #21382 the `preventDefault` call was moved further down so it doesn't prevent events until
the dragging threshold has been reached. The problem is that it'll only start calling `preventDefault`
from the first event __after__ the threshold has been reached which can be enough time for the device
to start scrolling.

These changes add an extra call as soon as dragging has been considered as "started".

Fixes #21749.
annieyw pushed a commit that referenced this pull request Feb 5, 2021
In #21382 the `preventDefault` call was moved further down so it doesn't prevent events until
the dragging threshold has been reached. The problem is that it'll only start calling `preventDefault`
from the first event __after__ the threshold has been reached which can be enough time for the device
to start scrolling.

These changes add an extra call as soon as dragging has been considered as "started".

Fixes #21749.

(cherry picked from commit 060ab9e)
annieyw pushed a commit that referenced this pull request Feb 5, 2021
In #21382 the `preventDefault` call was moved further down so it doesn't prevent events until
the dragging threshold has been reached. The problem is that it'll only start calling `preventDefault`
from the first event __after__ the threshold has been reached which can be enough time for the device
to start scrolling.

These changes add an extra call as soon as dragging has been considered as "started".

Fixes #21749.

(cherry picked from commit 060ab9e)
@angular-automatic-lock-bot
Copy link

This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.

Read more about our automatic conversation locking policy.

This action has been performed automatically by a bot.

@angular-automatic-lock-bot angular-automatic-lock-bot bot locked and limited conversation to collaborators Feb 6, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
action: merge The PR is ready for merge by the caretaker cla: yes PR author has agreed to Google's Contributor License Agreement P2 The issue is important to a large percentage of users, with a workaround target: patch This PR is targeted for the next patch release
Projects
None yet
3 participants