diff --git a/modules/juce_graphics/fonts/juce_TextLayout.cpp b/modules/juce_graphics/fonts/juce_TextLayout.cpp index 2990e6f98c..70547a5645 100644 --- a/modules/juce_graphics/fonts/juce_TextLayout.cpp +++ b/modules/juce_graphics/fonts/juce_TextLayout.cpp @@ -354,31 +354,30 @@ namespace TextLayoutHelpers if (newGlyphs.size() > 0) { - currentRun->glyphs.ensureStorageAllocated (currentRun->glyphs.size() + newGlyphs.size()); - auto tokenOrigin = t.area.getPosition().translated (0, t.font.getAscent()); - - if (needToSetLineOrigin) + if (! t.isWhitespace && ! t.isNewLine) { - needToSetLineOrigin = false; - currentLine->lineOrigin = tokenOrigin; - } - - auto glyphOffset = tokenOrigin - currentLine->lineOrigin; - - for (int j = 0; j < newGlyphs.size(); ++j) - { - auto x = xOffsets.getUnchecked (j); - currentRun->glyphs.add (TextLayout::Glyph (newGlyphs.getUnchecked(j), - glyphOffset.translated (x, 0), - xOffsets.getUnchecked (j + 1) - x)); + currentRun->glyphs.ensureStorageAllocated (currentRun->glyphs.size() + newGlyphs.size()); + auto tokenOrigin = t.area.getPosition().translated (0, t.font.getAscent()); + + if (needToSetLineOrigin) + { + needToSetLineOrigin = false; + currentLine->lineOrigin = tokenOrigin; + } + + auto glyphOffset = tokenOrigin - currentLine->lineOrigin; + + for (int j = 0; j < newGlyphs.size(); ++j) + { + auto x = xOffsets.getUnchecked (j); + currentRun->glyphs.add (TextLayout::Glyph (newGlyphs.getUnchecked (j), + glyphOffset.translated (x, 0), + xOffsets.getUnchecked (j + 1) - x)); + } } charPosition += newGlyphs.size(); } - else if (t.isWhitespace || t.isNewLine) - { - ++charPosition; - } if (auto* nextToken = tokens[i + 1]) {