Skip to content

Commit 22cd3ed

Browse files
crisbetojelbourn
authored andcommitted
fix(drag-drop): incorrectly calculating pointer position inside element, in some cases (#13111)
Fixes `CdkDrag` not calculating the pointer position inside the element correctly, if dragging started from inside another element within the draggable. Fixes #13107.
1 parent 3283e52 commit 22cd3ed

File tree

1 file changed

+3
-6
lines changed

1 file changed

+3
-6
lines changed

src/cdk/drag-drop/drag.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -507,12 +507,9 @@ export class CdkDrag<T = any> implements AfterViewInit, OnDestroy {
507507
const elementRect = this._rootElement.getBoundingClientRect();
508508
const handleElement = referenceElement === this._rootElement ? null : referenceElement;
509509
const referenceRect = handleElement ? handleElement.getBoundingClientRect() : elementRect;
510-
const x = this._isTouchEvent(event) ?
511-
event.targetTouches[0].pageX - referenceRect.left - this._scrollPosition.left :
512-
event.offsetX;
513-
const y = this._isTouchEvent(event) ?
514-
event.targetTouches[0].pageY - referenceRect.top - this._scrollPosition.top :
515-
event.offsetY;
510+
const point = this._isTouchEvent(event) ? event.targetTouches[0] : event;
511+
const x = point.pageX - referenceRect.left - this._scrollPosition.left;
512+
const y = point.pageY - referenceRect.top - this._scrollPosition.top;
516513

517514
return {
518515
x: referenceRect.left - elementRect.left + x,

0 commit comments

Comments
 (0)