perf: Improve elbow arrow indirect binding logic (#9624)

This commit is contained in:
Márk Tolmács
2025-06-11 19:15:48 +02:00
committed by GitHub
parent 18808481fd
commit f42e1ab64e
2 changed files with 5 additions and 16 deletions
+4 -11
View File
@@ -20,6 +20,7 @@ import {
tupleToCoors,
getSizeFromPoints,
isDevEnv,
arrayToMap,
} from "@excalidraw/common";
import type { AppState } from "@excalidraw/excalidraw/types";
@@ -2208,20 +2209,12 @@ const getGlobalPoint = (
return initialPoint;
}
if (element && elementsMap) {
const fixedGlobalPoint = getGlobalFixedPointForBindableElement(
if (element) {
return getGlobalFixedPointForBindableElement(
fixedPointRatio || [0, 0],
element,
elementsMap,
elementsMap ?? arrayToMap([element]),
);
// NOTE: Resize scales the binding position point too, so we need to update it
return Math.abs(
distanceToElement(element, elementsMap, fixedGlobalPoint) -
FIXED_BINDING_DISTANCE,
) > 0.01
? bindPointToSnapToElementOutline(arrow, element, startOrEnd, elementsMap)
: fixedGlobalPoint;
}
return initialPoint;