Browse Source

Partially revert e1366361

This fixes a bug when creating a TextLayout with whitespace at the start of lines.
v6.1.6
ed 3 years ago
parent
commit
2be72f6acd
1 changed files with 17 additions and 20 deletions
  1. +17
    -20
      modules/juce_graphics/fonts/juce_TextLayout.cpp

+ 17
- 20
modules/juce_graphics/fonts/juce_TextLayout.cpp View File

@@ -354,26 +354,23 @@ namespace TextLayoutHelpers
if (newGlyphs.size() > 0)
{
if (! t.isWhitespace && ! t.isNewLine)
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)
{
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));
}
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();
@@ -497,7 +494,7 @@ namespace TextLayoutHelpers
for (i = 0; i < tokens.size(); ++i)
{
auto& t = *tokens.getUnchecked(i);
auto& t = *tokens.getUnchecked (i);
t.area.setPosition (x, y);
t.line = totalLines;
x += t.area.getWidth();


Loading…
Cancel
Save