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({}) }