This commit is contained in:
Daniel J. Geiger 2023-01-24 19:09:07 -06:00
parent 08f430b3ac
commit 34515f2952
3 changed files with 15 additions and 4 deletions

View File

@ -83,6 +83,14 @@ export const redrawTextBoundingBox = (
const metrics = { width, height, baseline };
let coordY = textElement.y;
let coordX = textElement.x;
// Maintain coordX for non left-aligned text in case the width has changed
if (!container) {
if (textElement.textAlign === TEXT_ALIGN.RIGHT) {
coordX += textElement.width - metrics.width;
} else if (textElement.textAlign === TEXT_ALIGN.CENTER) {
coordX += textElement.width / 2 - metrics.width / 2;
}
}
// Resize container and vertically center align the text
if (container) {
if (!isArrowElement(container)) {

View File

@ -170,7 +170,7 @@ export const textWysiwyg = ({
const width = eMetrics.width;
// Set to element height by default since that's
// what is going to be used for unbounded text
let textElementHeight = updatedTextElement.height;
let textElementHeight = Math.max(updatedTextElement.height, maxHeight);
if (container && updatedTextElement.containerId) {
if (isArrowElement(container)) {
const boundTextCoords =

View File

@ -356,6 +356,9 @@ const consumeMathNewlines = (
mathProps: MathProps,
isMathJaxLoaded: boolean,
) => {
if (!isMathJaxLoaded) {
return text;
}
const tempText = splitMath(text.replace(/\r\n?/g, "\n"), mathProps);
if (mathProps.useTex || !mathProps.mathOnly) {
for (let i = 0; i < tempText.length; i++) {
@ -472,7 +475,7 @@ const markupText = (
isMathJaxLoaded: boolean,
) => {
const lines = consumeMathNewlines(text, mathProps, isMathJaxLoaded).split(
getMathNewline(mathProps),
isMathJaxLoaded ? getMathNewline(mathProps) : "\n",
);
const markup = [] as Array<string>[];
const aria = [] as Array<string>[];
@ -709,7 +712,7 @@ const renderMath = (
parentWidth?: number,
): string => {
const mathLines = consumeMathNewlines(text, mathProps, isMathJaxLoaded).split(
getMathNewline(mathProps),
isMathJaxLoaded ? getMathNewline(mathProps) : "\n",
);
const { markup, aria } = markupText(text, mathProps, isMathJaxLoaded);
const metrics = getMetrics(markup, fontSize, mathProps, isMathJaxLoaded);
@ -1150,7 +1153,7 @@ const wrapMathElement = function (element, containerWidth, next) {
const metrics = getMetrics(markup, fontSize, mathProps, isMathJaxLoaded);
const lines = consumeMathNewlines(text, mathProps, isMathJaxLoaded).split(
"\n",
isMathJaxLoaded ? getMathNewline(mathProps) : "\n",
);
const wrappedLines: string[] = [];
const spaceWidth = getTextWidth(" ", font);