From 548aca5b4f377a6f2c40d3f3d6a82d0dd79a1c65 Mon Sep 17 00:00:00 2001 From: Abdo Date: Sun, 10 Dec 2023 03:02:47 +0300 Subject: [PATCH] Persist mask group scaling (#2878) * Persist mask group scaling Handles the first issue in #2876 * Fix selection resizing --- ts/image-occlusion/shapes/to-cloze.ts | 5 +++++ ts/image-occlusion/tools/lib.ts | 9 +++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/ts/image-occlusion/shapes/to-cloze.ts b/ts/image-occlusion/shapes/to-cloze.ts index 7ea1553cc..41120a491 100644 --- a/ts/image-occlusion/shapes/to-cloze.ts +++ b/ts/image-occlusion/shapes/to-cloze.ts @@ -68,6 +68,11 @@ function fabricObjectToBaseShapeOrShapes( // Prevents the original fabric object from mutating when a non-primitive // property of a Shape mutates. const cloned = cloneDeep(object); + if (parentObject) { + const scaling = parentObject.getObjectScaling(); + cloned.width = cloned.width * scaling.scaleX; + cloned.height = cloned.height * scaling.scaleY; + } switch (object.type) { case "rect": diff --git a/ts/image-occlusion/tools/lib.ts b/ts/image-occlusion/tools/lib.ts index a1e8d6101..07cd8439a 100644 --- a/ts/image-occlusion/tools/lib.ts +++ b/ts/image-occlusion/tools/lib.ts @@ -189,11 +189,8 @@ export const moveShapeToCanvasBoundaries = (canvas: fabric.Canvas): void => { if (!activeObject) { return; } - if ( - activeObject.type === "activeSelection" - || activeObject.type === "rect" - ) { - modifiedSelection(canvas, activeObject); + if (activeObject.type === "rect") { + modifiedRectangle(canvas, activeObject); } if (activeObject.type === "ellipse") { modifiedEllipse(canvas, activeObject); @@ -204,7 +201,7 @@ export const moveShapeToCanvasBoundaries = (canvas: fabric.Canvas): void => { }); }; -const modifiedSelection = ( +const modifiedRectangle = ( canvas: fabric.Canvas, object: fabric.Object, ): void => {