From 8de65168238b8fb9a638e0c75f596f371983c2c7 Mon Sep 17 00:00:00 2001 From: Aakansha Doshi Date: Wed, 5 Apr 2023 17:33:05 +0530 Subject: [PATCH] floor line height and height when dom height increases than canvas height --- src/element/textWysiwyg.tsx | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/element/textWysiwyg.tsx b/src/element/textWysiwyg.tsx index 109b557d67..05c4ed7f51 100644 --- a/src/element/textWysiwyg.tsx +++ b/src/element/textWysiwyg.tsx @@ -36,6 +36,7 @@ import { getMaxContainerWidth, computeContainerDimensionForBoundText, measureDOMHeight, + getLineHeightInPx, splitIntoLines, } from "./textElement"; import { @@ -278,11 +279,19 @@ export const textWysiwyg = ({ getFontString(updatedTextElement), updatedTextElement.lineHeight, ); - let lineHeight = element.lineHeight; - if (isSafari && domHeight > textElementHeight) { - lineHeight = (Math.floor(element.lineHeight * element.fontSize) / - element.fontSize) as ExcalidrawTextElement["lineHeight"]; + if (isSafari) { + const lineCount = splitIntoLines(element.text).length; + if (domHeight > textElementHeight) { + lineHeight = (Math.floor(element.lineHeight * element.fontSize) / + element.fontSize) as ExcalidrawTextElement["lineHeight"]; + textElementHeight = + getLineHeightInPx(element.fontSize, lineHeight) * lineCount; + mutateElement(updatedTextElement, { + lineHeight, + height: textElementHeight, + }); + } } // Make sure text editor height doesn't go beyond viewport