From c290f69e4e2d3c2b0d31e5ec5ee32a3f7da5fe44 Mon Sep 17 00:00:00 2001 From: Dragon Fire Date: Fri, 26 Apr 2024 00:52:43 -0400 Subject: [PATCH] Fix --- util/Canvas.js | 43 ++++++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/util/Canvas.js b/util/Canvas.js index 6c08de48..49ebc396 100644 --- a/util/Canvas.js +++ b/util/Canvas.js @@ -221,27 +221,32 @@ module.exports = class CanvasUtil { const word = words[j]; if (ctx.measureText(`${currentLine} ${word}`).width <= maxWidth) { currentLine += `${currentLine === '' ? '' : ' '}${word}`; - } else if (ctx.measureText(word).width > maxWidth && shouldChunk) { - const chunks = []; - let currentChunk = ''; - for (let k = 0; k < word.length; k++) { - const char = word[k]; - if (ctx.measureText(`${currentChunk}${char}`).width <= maxWidth) { - currentChunk += char; - } else { + } else if (ctx.measureText(word).width > maxWidth) { + if (shouldChunk) { + const chunks = []; + let currentChunk = ''; + for (let k = 0; k < word.length; k++) { + const char = word[k]; + if (ctx.measureText(`${currentChunk}${char}`).width <= maxWidth) { + currentChunk += char; + } else { + chunks.push(currentChunk); + currentChunk = char; + } + } + if (currentChunk !== '') { chunks.push(currentChunk); - currentChunk = char; + } + for (let k = 0; k < chunks.length; k++) { + if (ctx.measureText(`${currentLine} ${chunks[k]}`).width > maxWidth) { + lines.push(currentLine.trim()); + currentLine = ''; + } + currentLine += `${currentLine === '' ? '' : ' '}${chunks[k]}`; } - } - if (currentChunk !== '') { - chunks.push(currentChunk); - } - for (let k = 0; k < chunks.length; k++) { - if (ctx.measureText(`${currentLine} ${chunks[k]}`).width > maxWidth) { - lines.push(currentLine.trim()); - currentLine = ''; - } - currentLine += `${currentLine === '' ? '' : ' '}${chunks[k]}`; + } else { + if (currentLine !== '') lines.push(currentLine.trim()); + currentLine = word; } } else { lines.push(currentLine.trim());