From 6a891365b968ffa2b54b1d03be06674cb2757ea1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rk=20Tolm=C3=A1cs?= Date: Mon, 26 Jan 2026 20:55:08 +0100 Subject: [PATCH] fix: Arrow endpoint offset (#10706) Signed-off-by: Mark Tolmacs --- packages/element/src/linearElementEditor.ts | 1 - packages/excalidraw/actions/actionFinalize.tsx | 10 +++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) 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,