Răsfoiți Sursa

fix: allow binding elbow arrows to frame children (#8309)

David Luzar 1 an în urmă
părinte
comite
e63dd025c9
1 a modificat fișierele cu 9 adăugiri și 1 ștergeri
  1. 9 1
      packages/excalidraw/element/binding.ts

+ 9 - 1
packages/excalidraw/element/binding.ts

@@ -38,6 +38,7 @@ import {
   isBindingElement,
   isBindingElement,
   isBoundToContainer,
   isBoundToContainer,
   isElbowArrow,
   isElbowArrow,
+  isFrameLikeElement,
   isLinearElement,
   isLinearElement,
   isTextElement,
   isTextElement,
 } from "./typeChecks";
 } from "./typeChecks";
@@ -517,7 +518,14 @@ export const getHoveredElementForBinding = (
     elements,
     elements,
     (element) =>
     (element) =>
       isBindableElement(element, false) &&
       isBindableElement(element, false) &&
-      bindingBorderTest(element, pointerCoords, elementsMap, fullShape),
+      bindingBorderTest(
+        element,
+        pointerCoords,
+        elementsMap,
+        // disable fullshape snapping for frame elements so we
+        // can bind to frame children
+        fullShape && !isFrameLikeElement(element),
+      ),
   );
   );
   return hoveredElement as NonDeleted<ExcalidrawBindableElement> | null;
   return hoveredElement as NonDeleted<ExcalidrawBindableElement> | null;
 };
 };