From 5364e48f795859857e88f2572066f8f9a36514d9 Mon Sep 17 00:00:00 2001 From: Mark Tolmacs Date: Mon, 11 Aug 2025 16:44:02 +0200 Subject: [PATCH] No center focus point --- packages/element/src/binding.ts | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/packages/element/src/binding.ts b/packages/element/src/binding.ts index 413f656977..95e8eae598 100644 --- a/packages/element/src/binding.ts +++ b/packages/element/src/binding.ts @@ -391,10 +391,7 @@ const bindingStrategyForNewSimpleArrowEndpointDragging = ( start: { mode: globalBindMode === "inside" ? "inside" : "orbit", element: hovered, - focusPoint: - globalBindMode === "inside" - ? arrowOriginalStartPoint ?? center - : center, + focusPoint: arrowOriginalStartPoint ?? center, }, end: { mode: null }, }; @@ -405,21 +402,19 @@ const bindingStrategyForNewSimpleArrowEndpointDragging = ( const otherElement = elementsMap.get(arrow.startBinding.elementId); invariant(otherElement, "Other element must be in the elements map"); - const center = pointFrom( - otherElement.x + otherElement.width / 2, - otherElement.y + otherElement.height / 2, - ); const otherIsInsideBinding = !!appState.selectedLinearElement?.pointerDownState.arrowStartIsInside; // We need to "jump" the start point out with the detached // focus point of the center of the bound element + invariant( + arrowOriginalStartPoint, + "Arrow original start point must be defined", + ); const other: BindingStrategy = { mode: otherIsInsideBinding ? "inside" : "orbit", element: otherElement as ExcalidrawBindableElement, - focusPoint: otherIsInsideBinding - ? arrowOriginalStartPoint ?? center - : center, + focusPoint: arrowOriginalStartPoint, }; let current: BindingStrategy; @@ -429,12 +424,7 @@ const bindingStrategyForNewSimpleArrowEndpointDragging = ( current = { mode: isInsideBinding ? "inside" : "orbit", element: hovered, - focusPoint: isInsideBinding - ? point - : pointFrom( - hovered.x + hovered.width / 2, - hovered.y + hovered.height / 2, - ), + focusPoint: point, }; } else { current = { mode: null };