|
@@ -36,6 +36,7 @@ import {
|
|
getMaxContainerWidth,
|
|
getMaxContainerWidth,
|
|
computeContainerDimensionForBoundText,
|
|
computeContainerDimensionForBoundText,
|
|
measureDOMHeight,
|
|
measureDOMHeight,
|
|
|
|
+ getLineHeightInPx,
|
|
splitIntoLines,
|
|
splitIntoLines,
|
|
} from "./textElement";
|
|
} from "./textElement";
|
|
import {
|
|
import {
|
|
@@ -278,11 +279,19 @@ export const textWysiwyg = ({
|
|
getFontString(updatedTextElement),
|
|
getFontString(updatedTextElement),
|
|
updatedTextElement.lineHeight,
|
|
updatedTextElement.lineHeight,
|
|
);
|
|
);
|
|
-
|
|
|
|
let lineHeight = element.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
|
|
// Make sure text editor height doesn't go beyond viewport
|