Merge pull request #4498 from xyflow/fix-pointer-capture
only capture pointer after valid selection has started
This commit is contained in:
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
'@xyflow/react': patch
|
||||||
|
'@xyflow/svelte': patch
|
||||||
|
---
|
||||||
|
|
||||||
|
fix(pane) only capture pointer after a valid selection has started, fixes #4492
|
||||||
@@ -120,7 +120,6 @@ export function Pane({
|
|||||||
const onPointerDown = (event: ReactPointerEvent): void => {
|
const onPointerDown = (event: ReactPointerEvent): void => {
|
||||||
const { resetSelectedElements, domNode, edgeLookup } = store.getState();
|
const { resetSelectedElements, domNode, edgeLookup } = store.getState();
|
||||||
containerBounds.current = domNode?.getBoundingClientRect();
|
containerBounds.current = domNode?.getBoundingClientRect();
|
||||||
(event.target as Element)?.setPointerCapture?.(event.pointerId);
|
|
||||||
|
|
||||||
if (
|
if (
|
||||||
!elementsSelectable ||
|
!elementsSelectable ||
|
||||||
@@ -132,6 +131,8 @@ export function Pane({
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
(event.target as Element)?.setPointerCapture?.(event.pointerId);
|
||||||
|
|
||||||
selectionStarted.current = true;
|
selectionStarted.current = true;
|
||||||
selectionInProgress.current = false;
|
selectionInProgress.current = false;
|
||||||
edgeIdLookup.current = new Map();
|
edgeIdLookup.current = new Map();
|
||||||
|
|||||||
@@ -92,7 +92,6 @@
|
|||||||
|
|
||||||
function onPointerDown(event: PointerEvent) {
|
function onPointerDown(event: PointerEvent) {
|
||||||
containerBounds = container.getBoundingClientRect();
|
containerBounds = container.getBoundingClientRect();
|
||||||
(event.target as Element)?.setPointerCapture?.(event.pointerId);
|
|
||||||
|
|
||||||
if (
|
if (
|
||||||
!elementsSelectable ||
|
!elementsSelectable ||
|
||||||
@@ -104,6 +103,8 @@
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
(event.target as Element)?.setPointerCapture?.(event.pointerId);
|
||||||
|
|
||||||
const { x, y } = getEventPosition(event, containerBounds);
|
const { x, y } = getEventPosition(event, containerBounds);
|
||||||
|
|
||||||
unselectNodesAndEdges();
|
unselectNodesAndEdges();
|
||||||
|
|||||||
Reference in New Issue
Block a user