From 2b835ebb7803058da4972be6c19595b210690d59 Mon Sep 17 00:00:00 2001 From: zsviczian Date: Wed, 3 Jan 2024 16:08:22 +0100 Subject: [PATCH 1/3] Do not close loop for freedraw --- packages/excalidraw/element/linearElementEditor.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/excalidraw/element/linearElementEditor.ts b/packages/excalidraw/element/linearElementEditor.ts index bf64ee732..2902772a1 100644 --- a/packages/excalidraw/element/linearElementEditor.ts +++ b/packages/excalidraw/element/linearElementEditor.ts @@ -42,7 +42,7 @@ import { isBindingEnabled, } from "./binding"; import { tupleToCoors } from "../utils"; -import { isBindingElement } from "./typeChecks"; +import { isBindingElement, isFreeDrawElement } from "./typeChecks"; import { KEYS, shouldRotateWithDiscreteAngle } from "../keys"; import { getBoundTextElement, handleBindTextResize } from "./textElement"; import { DRAGGING_THRESHOLD } from "../constants"; @@ -344,7 +344,10 @@ export class LinearElementEditor { selectedPoint === 0 || selectedPoint === element.points.length - 1 ) { - if (isPathALoop(element.points, appState.zoom.value)) { + if ( + !isFreeDrawElement(element) && + isPathALoop(element.points, appState.zoom.value) + ) { LinearElementEditor.movePoints(element, [ { index: selectedPoint, From 2eab545f272c2d1223c0b4e5278092c0f04a2cf6 Mon Sep 17 00:00:00 2001 From: zsviczian Date: Sat, 6 Jan 2024 18:10:18 +0100 Subject: [PATCH 2/3] Update linearElementEditor.ts --- packages/excalidraw/element/linearElementEditor.ts | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/packages/excalidraw/element/linearElementEditor.ts b/packages/excalidraw/element/linearElementEditor.ts index 2902772a1..bf64ee732 100644 --- a/packages/excalidraw/element/linearElementEditor.ts +++ b/packages/excalidraw/element/linearElementEditor.ts @@ -42,7 +42,7 @@ import { isBindingEnabled, } from "./binding"; import { tupleToCoors } from "../utils"; -import { isBindingElement, isFreeDrawElement } from "./typeChecks"; +import { isBindingElement } from "./typeChecks"; import { KEYS, shouldRotateWithDiscreteAngle } from "../keys"; import { getBoundTextElement, handleBindTextResize } from "./textElement"; import { DRAGGING_THRESHOLD } from "../constants"; @@ -344,10 +344,7 @@ export class LinearElementEditor { selectedPoint === 0 || selectedPoint === element.points.length - 1 ) { - if ( - !isFreeDrawElement(element) && - isPathALoop(element.points, appState.zoom.value) - ) { + if (isPathALoop(element.points, appState.zoom.value)) { LinearElementEditor.movePoints(element, [ { index: selectedPoint, From f244b76ec034634f07ddfb1d8b019818c1ad47e9 Mon Sep 17 00:00:00 2001 From: zsviczian Date: Sat, 6 Jan 2024 18:11:26 +0100 Subject: [PATCH 3/3] Update actionFinalize.tsx --- packages/excalidraw/actions/actionFinalize.tsx | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/excalidraw/actions/actionFinalize.tsx b/packages/excalidraw/actions/actionFinalize.tsx index a7c34c5ac..ccd10cad4 100644 --- a/packages/excalidraw/actions/actionFinalize.tsx +++ b/packages/excalidraw/actions/actionFinalize.tsx @@ -100,10 +100,7 @@ export const actionFinalize = register({ // set the last point to first point. // This ensures that loop remains closed at different scales. const isLoop = isPathALoop(multiPointElement.points, appState.zoom.value); - if ( - multiPointElement.type === "line" || - multiPointElement.type === "freedraw" - ) { + if (multiPointElement.type === "line") { if (isLoop) { const linePoints = multiPointElement.points; const firstPoint = linePoints[0];