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(drag-drop): boundary not accounting for scrolling #18612

Merged
merged 1 commit into from
Apr 8, 2020

Conversation

crisbeto
Copy link
Member

When the user starts dragging, we cache the ClientRect of the boundary so we know the area around which to limit the preview. The problem is that we weren't updating the cached position which cause it to behave incorrectly if the user scrolled after they start dragging.

These changes fix the issue by updating cached position. This ended up slightly more complicated than expected, because it has to interact with the auto scrolling.

I've also moved around some utilities for dealing with ClientRect so that they can be reused.

Fixes #18597.

@crisbeto crisbeto added P3 An issue that is relevant to core functions, but does not impede progress. Important, but not urgent target: patch This PR is targeted for the next patch release labels Feb 25, 2020
@googlebot googlebot added the cla: yes PR author has agreed to Google's Contributor License Agreement label Feb 25, 2020
src/cdk/drag-drop/drag-ref.ts Outdated Show resolved Hide resolved
src/cdk/drag-drop/drag-ref.ts Outdated Show resolved Hide resolved
When the user starts dragging, we cache the `ClientRect` of the boundary so we know the area around which to limit the preview. The problem is that we weren't updating the cached position which cause it to behave incorrectly if the user scrolled after they start dragging.

These changes fix the issue by updating cached position. This ended up slightly more complicated than expected, because it has to interact with the auto scrolling.

I've also moved around some utilities for dealing with `ClientRect` so that they can be reused.

Fixes angular#18597.
@crisbeto crisbeto force-pushed the 18597/drag-drop-boundary-scroll branch from a131558 to d749532 Compare March 15, 2020 14:35
@crisbeto
Copy link
Member Author

The feedback has been addressed @jelbourn.

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 lgtm action: merge The PR is ready for merge by the caretaker labels Mar 30, 2020
@mmalerba mmalerba merged commit 9a0fba5 into angular:master Apr 8, 2020
mmalerba pushed a commit that referenced this pull request Apr 14, 2020
When the user starts dragging, we cache the `ClientRect` of the boundary so we know the area around which to limit the preview. The problem is that we weren't updating the cached position which cause it to behave incorrectly if the user scrolled after they start dragging.

These changes fix the issue by updating cached position. This ended up slightly more complicated than expected, because it has to interact with the auto scrolling.

I've also moved around some utilities for dealing with `ClientRect` so that they can be reused.

Fixes #18597.
@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 May 9, 2020
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 P3 An issue that is relevant to core functions, but does not impede progress. Important, but not urgent target: patch This PR is targeted for the next patch release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[drag-drop] cdkDragBoundary positions not updating during viewport scrolling
4 participants