diff --git a/packages/element/src/linearElementEditor.ts b/packages/element/src/linearElementEditor.ts index 62f5ebbff7..00bf516350 100644 --- a/packages/element/src/linearElementEditor.ts +++ b/packages/element/src/linearElementEditor.ts @@ -724,7 +724,6 @@ export class LinearElementEditor { ? [pointerDownState.lastClickedPoint] : selectedPointsIndices, isDragging: false, - pointerOffset: { x: 0, y: 0 }, customLineAngle: null, initialState: { ...editingLinearElement.initialState, diff --git a/packages/excalidraw/actions/actionFinalize.tsx b/packages/excalidraw/actions/actionFinalize.tsx index 1dd6884259..e0f59a5655 100644 --- a/packages/excalidraw/actions/actionFinalize.tsx +++ b/packages/excalidraw/actions/actionFinalize.tsx @@ -98,7 +98,10 @@ export const actionFinalize = register({ map.set(index, { point: LinearElementEditor.pointFromAbsoluteCoords( element, - pointFrom(sceneCoords.x, sceneCoords.y), + pointFrom( + sceneCoords.x - linearElementEditor.pointerOffset.x, + sceneCoords.y - linearElementEditor.pointerOffset.y, + ), elementsMap, ), }); @@ -109,8 +112,8 @@ export const actionFinalize = register({ bindOrUnbindBindingElement( element, draggedPoints, - sceneCoords.x, - sceneCoords.y, + sceneCoords.x - linearElementEditor.pointerOffset.x, + sceneCoords.y - linearElementEditor.pointerOffset.y, scene, appState, { @@ -173,6 +176,7 @@ export const actionFinalize = register({ ...linearElementEditor.initialState, lastClickedPoint: -1, }, + pointerOffset: { x: 0, y: 0 }, }, selectionElement: null, suggestedBinding: null,