diff --git a/src/element/resizeElements.ts b/src/element/resizeElements.ts index 9b825a11..a1d1ee19 100644 --- a/src/element/resizeElements.ts +++ b/src/element/resizeElements.ts @@ -1,4 +1,4 @@ -import { SHIFT_LOCKING_ANGLE } from "../constants"; +import { BOUND_TEXT_PADDING, SHIFT_LOCKING_ANGLE } from "../constants"; import { rescalePoints } from "../points"; import { @@ -141,7 +141,6 @@ export const transformElements = ( pointerX, pointerY, ); - handleBindTextResize(selectedElements, transformHandleType); return true; } } @@ -674,7 +673,25 @@ const resizeMultipleElements = ( } const width = element.width * scale; const height = element.height * scale; + const boundTextElement = getBoundTextElement(element); let font: { fontSize?: number; baseline?: number } = {}; + + if (boundTextElement) { + const nextFont = measureFontSizeFromWH( + boundTextElement, + width - BOUND_TEXT_PADDING * 2, + height - BOUND_TEXT_PADDING * 2, + ); + + if (nextFont === null) { + return null; + } + font = { + fontSize: nextFont.size, + baseline: nextFont.baseline, + }; + } + if (isTextElement(element)) { const nextFont = measureFontSizeFromWH(element, width, height); if (nextFont === null) { @@ -718,6 +735,15 @@ const resizeMultipleElements = ( if (updates) { elements.forEach((element, index) => { mutateElement(element, updates[index]); + const boundTextElement = getBoundTextElement(element); + + if (boundTextElement) { + mutateElement(boundTextElement, { + fontSize: updates[index].fontSize, + baseline: updates[index].baseline, + }); + handleBindTextResize([element], transformHandleType); + } }); } }