From 7fd2782d00f862fc55459315f074500b0659b087 Mon Sep 17 00:00:00 2001 From: braks <78412429+bcakmakoglu@users.noreply.github.com> Date: Wed, 18 Jan 2023 12:38:05 +0100 Subject: [PATCH] fix(core): dont trigger ctx menu when dragging with right mouse btn Signed-off-by: braks <78412429+bcakmakoglu@users.noreply.github.com> --- packages/core/src/container/Viewport/Viewport.vue | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/core/src/container/Viewport/Viewport.vue b/packages/core/src/container/Viewport/Viewport.vue index ec8398b8..69bfdb6a 100644 --- a/packages/core/src/container/Viewport/Viewport.vue +++ b/packages/core/src/container/Viewport/Viewport.vue @@ -42,6 +42,8 @@ let isZoomingOrPanning = $ref(false) let zoomedWithRightMouseButton = $ref(false) +let mouseButton = $ref(0) + const isRightClickPan = (pan: FlowOptions['panOnDrag'], usedButton: number) => usedButton === 2 && Array.isArray(pan) && pan.includes(2) @@ -127,7 +129,7 @@ onMounted(() => { const flowTransform = eventToFlowTransform(event.transform) - zoomedWithRightMouseButton = isRightClickPan(panOnDrag, event.sourceEvent?.button) + zoomedWithRightMouseButton = isRightClickPan(panOnDrag, mouseButton ?? 0) emits.viewportChange(flowTransform) emits.move({ event, flowTransform }) @@ -145,6 +147,9 @@ onMounted(() => { d3Zoom.on('start', (event: D3ZoomEvent) => { if (!event.sourceEvent) return null + // we need to remember it here, because it's always 0 in the "zoom" event + mouseButton = event.sourceEvent.button + isZoomingOrPanning = true const flowTransform = eventToFlowTransform(event.transform) @@ -166,7 +171,7 @@ onMounted(() => { setState({ paneDragging: false }) - if (isRightClickPan(panOnDrag, event.sourceEvent?.button) && !zoomedWithRightMouseButton) { + if (isRightClickPan(panOnDrag, mouseButton ?? 0) && !zoomedWithRightMouseButton) { emits.paneContextMenu(event.sourceEvent) }