Skip to content

Commit 3fbca94

Browse files
authored
Merge pull request #2419 from Ruslan207/fix/touchscreen-mouse-drag-fix
fix(drag): fix mouse drag on devices with touchscreen
2 parents 0c80fe8 + 2de804d commit 3fbca94

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

src/dd-touch.ts

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,9 @@ export function touchend(e: TouchEvent): void {
175175
*/
176176
export function pointerdown(e: PointerEvent): void {
177177
// console.log("pointer down")
178-
(e.target as HTMLElement).releasePointerCapture(e.pointerId) // <- Important!
178+
if (e.pointerType !== 'mouse') {
179+
(e.target as HTMLElement).releasePointerCapture(e.pointerId) // <- Important!
180+
}
179181
}
180182

181183
export function pointerenter(e: PointerEvent): void {
@@ -185,7 +187,9 @@ export function pointerenter(e: PointerEvent): void {
185187
return;
186188
}
187189
// console.log('pointerenter');
188-
simulatePointerMouseEvent(e, 'mouseenter');
190+
if (e.pointerType !== 'mouse') {
191+
simulatePointerMouseEvent(e, 'mouseenter');
192+
}
189193
}
190194

191195
export function pointerleave(e: PointerEvent): void {
@@ -195,10 +199,12 @@ export function pointerleave(e: PointerEvent): void {
195199
// console.log('pointerleave ignored');
196200
return;
197201
}
198-
DDTouch.pointerLeaveTimeout = window.setTimeout(() => {
199-
delete DDTouch.pointerLeaveTimeout;
200-
// console.log('pointerleave delayed');
201-
simulatePointerMouseEvent(e, 'mouseleave');
202-
}, 10);
202+
if (e.pointerType !== 'mouse') {
203+
DDTouch.pointerLeaveTimeout = window.setTimeout(() => {
204+
delete DDTouch.pointerLeaveTimeout;
205+
// console.log('pointerleave delayed');
206+
simulatePointerMouseEvent(e, 'mouseleave');
207+
}, 10);
208+
}
203209
}
204210

0 commit comments

Comments
 (0)