From 027a74acfcf931283c92d4723ad2942458d8e67a Mon Sep 17 00:00:00 2001 From: Mark Tolmacs Date: Sun, 27 Jul 2025 12:09:58 +0200 Subject: [PATCH] Fix elbow arrow --- packages/element/src/binding.ts | 41 +++++++++++++++----------- packages/excalidraw/components/App.tsx | 2 +- 2 files changed, 25 insertions(+), 18 deletions(-) diff --git a/packages/element/src/binding.ts b/packages/element/src/binding.ts index beb096c094..0452cc0f26 100644 --- a/packages/element/src/binding.ts +++ b/packages/element/src/binding.ts @@ -474,23 +474,30 @@ export const getBindingStrategyForDraggingBindingElementEndpoints = ( appState.zoom, ); - return { - start: hovered - ? hit - ? { element: hovered, mode: "inside" } - : opts?.newArrow - ? { - element: hovered, - mode: "orbit", - focusPoint: pointFrom( - hovered.x + hovered.width / 2, - hovered.y + hovered.height / 2, - ), - } - : { element: hovered, mode: "inside" } - : { mode: undefined }, - end: { mode: undefined }, - }; + return isElbowArrow(arrow) + ? { + start: hovered + ? { element: hovered, mode: "orbit" } + : { mode: undefined }, + end: { mode: undefined }, + } + : { + start: hovered + ? hit + ? { element: hovered, mode: "inside" } + : opts?.newArrow + ? { + element: hovered, + mode: "orbit", + focusPoint: pointFrom( + hovered.x + hovered.width / 2, + hovered.y + hovered.height / 2, + ), + } + : { element: hovered, mode: "inside" } + : { mode: undefined }, + end: { mode: undefined }, + }; } // If none of the ends are dragged, we don't change anything diff --git a/packages/excalidraw/components/App.tsx b/packages/excalidraw/components/App.tsx index b79b3c1827..560c38985e 100644 --- a/packages/excalidraw/components/App.tsx +++ b/packages/excalidraw/components/App.tsx @@ -8077,7 +8077,7 @@ class App extends React.Component { } this.scene.mutateElement(element, { - points: [...element.points, pointFrom(0, 0)], + points: [pointFrom(0, 0), pointFrom(0, 0)], }); this.scene.insertElement(element); if (isBindingElement(element)) {