Browse Source

fix: Do not allow resizing unbound elbow arrows either (#8333)

* Fix resizing of unbound elbow arrows
Márk Tolmács 1 year ago
parent
commit
72d6ee48fc

+ 6 - 1
packages/excalidraw/components/App.tsx

@@ -9660,7 +9660,12 @@ class App extends React.Component<AppProps, AppState> {
 
 
     const transformHandleType = pointerDownState.resize.handleType;
     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;
       return false;
     }
     }
 
 

+ 0 - 9
packages/excalidraw/element/resizeElements.ts

@@ -441,15 +441,6 @@ export const resizeSingleElement = (
   pointerY: number,
   pointerY: number,
   scene: Scene,
   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)!;
   const stateAtResizeStart = originalElements.get(element.id)!;
   // Gets bounds corners
   // Gets bounds corners
   const [x1, y1, x2, y2] = getResizedElementAbsoluteCoords(
   const [x1, y1, x2, y2] = getResizedElementAbsoluteCoords(

+ 1 - 0
packages/excalidraw/element/transformHandles.ts

@@ -321,6 +321,7 @@ export const shouldShowBoundingBox = (
   }
   }
   const element = elements[0];
   const element = elements[0];
   if (isElbowArrow(element)) {
   if (isElbowArrow(element)) {
+    // Elbow arrows cannot be resized as single selected elements
     return false;
     return false;
   }
   }
   if (!isLinearElement(element)) {
   if (!isLinearElement(element)) {