diff --git a/packages/text/src/Text.js b/packages/text/src/Text.js index d46040d..5cdc2e3 100644 --- a/packages/text/src/Text.js +++ b/packages/text/src/Text.js @@ -295,6 +295,8 @@ // https://medium.com/@giltayar/iterating-over-emoji-characters-the-es6-way-f06e4589516 // https://github.com/orling/grapheme-splitter const stringArray = Array.from ? Array.from(text) : text.split(''); + let previousWidth = this.context.measureText(text).width; + let currentWidth = 0; for (let i = 0; i < stringArray.length; ++i) { @@ -308,7 +310,9 @@ { this.context.fillText(currentChar, currentPosition, y); } - currentPosition += this.context.measureText(currentChar).width + letterSpacing; + currentWidth = this.context.measureText(text.substring(i + 1)).width; + currentPosition += previousWidth - currentWidth + letterSpacing; + previousWidth = currentWidth; } }