Преглед изворни кода

fix: Fix elbow arrow fixed binding on restore (#9197)

Márk Tolmács пре 6 месеци
родитељ
комит
392118bf26
1 измењених фајлова са 6 додато и 2 уклоњено
  1. 6 2
      packages/excalidraw/element/binding.ts

+ 6 - 2
packages/excalidraw/element/binding.ts

@@ -2206,9 +2206,13 @@ export const normalizeFixedPoint = <T extends FixedPoint | null>(
 ): T extends null ? null : FixedPoint => {
   // Do not allow a precise 0.5 for fixed point ratio
   // to avoid jumping arrow heading due to floating point imprecision
-  if (fixedPoint && (fixedPoint[0] === 0.5 || fixedPoint[1] === 0.5)) {
+  if (
+    fixedPoint &&
+    (Math.abs(fixedPoint[0] - 0.5) < 0.0001 ||
+      Math.abs(fixedPoint[1] - 0.5) < 0.0001)
+  ) {
     return fixedPoint.map((ratio) =>
-      ratio === 0.5 ? 0.5001 : ratio,
+      Math.abs(ratio - 0.5) < 0.0001 ? 0.5001 : ratio,
     ) as T extends null ? null : FixedPoint;
   }
   return fixedPoint as any as T extends null ? null : FixedPoint;