From c4904fb460538a549c4ece135c857fd92c317f80 Mon Sep 17 00:00:00 2001 From: Ian Gilman Date: Thu, 18 Nov 2021 13:45:50 -0800 Subject: [PATCH] No longer firing canvas-drag-end if there is no canvas-drag preceding --- src/mousetracker.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/mousetracker.js b/src/mousetracker.js index 83c7eafc..e64e7637 100644 --- a/src/mousetracker.js +++ b/src/mousetracker.js @@ -271,7 +271,10 @@ lastPinchDist: 0, currentPinchDist: 0, lastPinchCenter: null, - currentPinchCenter: null + currentPinchCenter: null, + + // Tracking for drag + sentDragEvent: false }; this.hasGestureHandlers = !!( this.pressHandler || this.nonPrimaryPressHandler || @@ -1446,6 +1449,8 @@ for ( i = 0; i < pointerListCount; i++ ) { delegate.activePointersLists.pop(); } + + delegate.sentDragEvent = false; } /** @@ -3476,7 +3481,7 @@ } // Drag End - if ( tracker.dragEndHandler ) { + if ( tracker.dragEndHandler && delegate.sentDragEvent ) { tracker.dragEndHandler( { eventSource: tracker, @@ -3492,6 +3497,9 @@ ); } + // We want to clear this flag regardless of whether we fired the dragEndHandler + delegate.sentDragEvent = false; + // Click / Double-Click if ( ( tracker.clickHandler || tracker.dblClickHandler ) && updateGPoint.insideElement ) { quick = releaseTime - updateGPoint.contactTime <= tracker.clickTimeThreshold && @@ -3679,6 +3687,7 @@ } ); eventInfo.preventDefault = true; + delegate.sentDragEvent = true; } } else if ( pointsList.contacts === 2 ) { // Move (2 contacts, use center)