From 59a0c0b58334cc7dbb082088af58469981f56657 Mon Sep 17 00:00:00 2001 From: paul Date: Wed, 5 Mar 2025 15:16:54 +0530 Subject: [PATCH] fixed pointer issue --- src/canvas/widgets/widgetDnd.js | 9 +++++++++ src/components/draggable/draggableContext.js | 1 + 2 files changed, 10 insertions(+) diff --git a/src/canvas/widgets/widgetDnd.js b/src/canvas/widgets/widgetDnd.js index 7f86a56..44e2fe9 100644 --- a/src/canvas/widgets/widgetDnd.js +++ b/src/canvas/widgets/widgetDnd.js @@ -62,6 +62,7 @@ function WidgetDnd({widgetId, canvas, widgetRef, droppableTags,onMousePress, onD useEffect(() => { + canvas?.addEventListener("pointerdown", handleInitialPosOffset) canvas?.addEventListener("mousedown", handleInitialPosOffset) manager?.monitor?.addEventListener("dragstart", handleDragEnter) @@ -73,7 +74,10 @@ function WidgetDnd({widgetId, canvas, widgetRef, droppableTags,onMousePress, onD manager?.monitor?.removeEventListener("dragstart", handleDragEnter) manager?.monitor?.removeEventListener("dragend", handleDropEvent) manager?.monitor?.removeEventListener("dragmove", handleDragOver) + canvas?.removeEventListener("mousedown", handleInitialPosOffset) + canvas?.removeEventListener("pointerdown", handleInitialPosOffset) + } }, [manager, draggedElement, widgetClass, canvas]) @@ -88,6 +92,11 @@ function WidgetDnd({widgetId, canvas, widgetRef, droppableTags,onMousePress, onD const handleInitialPosOffset = (e) => { + + if (!widgetRef?.current.contains(e.target)){ + return + } + console.log("canvas bounding rect: ", canvas.getBoundingClientRect()) const {clientX, clientY} = e diff --git a/src/components/draggable/draggableContext.js b/src/components/draggable/draggableContext.js index e37ba26..5493432 100644 --- a/src/components/draggable/draggableContext.js +++ b/src/components/draggable/draggableContext.js @@ -39,6 +39,7 @@ export const DragProvider = ({ children }) => { setWidgetClass(null) setIsDragging(false) + // setInitialOffset({x: 0, y: 0}) setDragElementMetaData({}) }