From 72d6ee48fcd5cbb442a6fc212c710e94e3581980 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rk=20Tolm=C3=A1cs?= Date: Tue, 6 Aug 2024 17:33:34 +0200 Subject: [PATCH] fix: Do not allow resizing unbound elbow arrows either (#8333) * Fix resizing of unbound elbow arrows --- packages/excalidraw/components/App.tsx | 7 ++++++- packages/excalidraw/element/resizeElements.ts | 9 --------- packages/excalidraw/element/transformHandles.ts | 1 + 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/packages/excalidraw/components/App.tsx b/packages/excalidraw/components/App.tsx index 3b1b1fc77e..e1c361f255 100644 --- a/packages/excalidraw/components/App.tsx +++ b/packages/excalidraw/components/App.tsx @@ -9660,7 +9660,12 @@ class App extends React.Component { const transformHandleType = pointerDownState.resize.handleType; - if (selectedFrames.length > 0 && transformHandleType === "rotation") { + if ( + // Frames cannot be rotated. + (selectedFrames.length > 0 && transformHandleType === "rotation") || + // Elbow arrows cannot be transformed (resized or rotated). + (selectedElements.length === 1 && isElbowArrow(selectedElements[0])) + ) { return false; } diff --git a/packages/excalidraw/element/resizeElements.ts b/packages/excalidraw/element/resizeElements.ts index ddf9fb1da8..16213614f2 100644 --- a/packages/excalidraw/element/resizeElements.ts +++ b/packages/excalidraw/element/resizeElements.ts @@ -441,15 +441,6 @@ export const resizeSingleElement = ( pointerY: number, scene: Scene, ) => { - // Elbow arrows cannot be resized when bound on either end - if ( - isArrowElement(element) && - isElbowArrow(element) && - (element.startBinding || element.endBinding) - ) { - return; - } - const stateAtResizeStart = originalElements.get(element.id)!; // Gets bounds corners const [x1, y1, x2, y2] = getResizedElementAbsoluteCoords( diff --git a/packages/excalidraw/element/transformHandles.ts b/packages/excalidraw/element/transformHandles.ts index e1ffd487fa..698e0227e8 100644 --- a/packages/excalidraw/element/transformHandles.ts +++ b/packages/excalidraw/element/transformHandles.ts @@ -321,6 +321,7 @@ export const shouldShowBoundingBox = ( } const element = elements[0]; if (isElbowArrow(element)) { + // Elbow arrows cannot be resized as single selected elements return false; } if (!isLinearElement(element)) {