Chromium Code Reviews| Index: Source/platform/fonts/shaping/HarfBuzzShaper.cpp |
| diff --git a/Source/platform/fonts/shaping/HarfBuzzShaper.cpp b/Source/platform/fonts/shaping/HarfBuzzShaper.cpp |
| index 8063039c306b8fae8f5c4976c7b12c593c1ef51c..981a642c5be9cb3e9214488357af0c6f49528679 100644 |
| --- a/Source/platform/fonts/shaping/HarfBuzzShaper.cpp |
| +++ b/Source/platform/fonts/shaping/HarfBuzzShaper.cpp |
| @@ -602,7 +602,7 @@ static void normalizeCharacters(const TextRun& run, unsigned length, UChar* dest |
| // Don't normalize tabs as they are not treated as spaces for word-end. |
| if (run.normalizeSpace() && Character::isNormalizedCanvasSpaceCharacter(character)) |
| character = spaceCharacter; |
| - else if (Character::treatAsSpace(character)) |
| + else if (Character::treatAsSpace(character) && character != noBreakSpaceCharacter) |
| character = spaceCharacter; |
| else if (Character::treatAsZeroWidthSpaceInComplexScript(character)) |
| character = zeroWidthSpaceCharacter; |
| @@ -1172,7 +1172,7 @@ float HarfBuzzShaper::adjustSpacing(ShapeResult::RunInfo* run, size_t glyphIndex |
| spacing += m_letterSpacing; |
| bool treatAsSpace = Character::treatAsSpace(character); |
| - if (treatAsSpace && currentCharacterIndex && (character != '\t' || !m_textRun.allowTabs())) |
| + if (treatAsSpace && (currentCharacterIndex || character == noBreakSpaceCharacter) && (character != '\t' || !m_textRun.allowTabs())) |
|
pdr.
2015/08/22 02:29:46
This change took me a while to understand, but I'm
|
| spacing += m_wordSpacingAdjustment; |
| if (!m_expansionOpportunityCount) |