Skip to content

Commit 6cc3042

Browse files
committed
fix(core): calculate distance to trigger drag-click (#1624)
* fix(core): calculate distance to trigger drag-click Signed-off-by: braks <[email protected]> * chore(changeset): add Signed-off-by: braks <[email protected]> --------- Signed-off-by: braks <[email protected]>
1 parent 6338a9d commit 6cc3042

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

.changeset/poor-lions-rush.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@vue-flow/core": patch
3+
---
4+
5+
Use calculated drag distance to trigger drag-click.

packages/core/src/composables/useDrag.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -229,8 +229,19 @@ export function useDrag(params: UseDragParams) {
229229
}
230230

231231
const eventEnd = (event: UseDragEvent) => {
232-
if (!dragging.value && !multiSelectionActive.value) {
233-
onClick?.(event.sourceEvent)
232+
if (!dragStarted && !dragging.value && !multiSelectionActive.value) {
233+
const pointerPos = getPointerPosition(event)
234+
235+
const x = pointerPos.xSnapped - (lastPos.x ?? 0)
236+
const y = pointerPos.ySnapped - (lastPos.y ?? 0)
237+
const distance = Math.sqrt(x * x + y * y)
238+
239+
// dispatch a click event if the node was attempted to be dragged but the threshold was not exceeded
240+
if (distance !== 0 && distance <= nodeDragThreshold.value) {
241+
onClick?.(event.sourceEvent)
242+
}
243+
244+
return
234245
}
235246

236247
dragging.value = false

0 commit comments

Comments
 (0)