diff options
author | Chris Loer <chris.loer@gmail.com> | 2016-12-29 17:17:57 -0800 |
---|---|---|
committer | Chris Loer <chris.loer@gmail.com> | 2016-12-29 17:17:57 -0800 |
commit | 084dba71fcd5bf915178fde30efb4b31b44f3df8 (patch) | |
tree | 545e18a5f8191a83d58981017de576d525746022 | |
parent | 7778913153bc7358e50f2809236b9bbb84d92bef (diff) | |
download | qtlocation-mapboxgl-084dba71fcd5bf915178fde30efb4b31b44f3df8.tar.gz |
Make sure explicit newlines get considered as breakpoints before being passed to ICU.upstream/cloer_no_parentheses_break
-rw-r--r-- | src/mbgl/text/glyph_set.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/mbgl/text/glyph_set.cpp b/src/mbgl/text/glyph_set.cpp index 6f4ccdcf0a..4738bf97cf 100644 --- a/src/mbgl/text/glyph_set.cpp +++ b/src/mbgl/text/glyph_set.cpp @@ -211,7 +211,7 @@ std::set<std::size_t> GlyphSet::determineLineBreaks(const std::u16string& logica for (std::size_t i = 0; i < logicalInput.size(); i++) { const char16_t codePoint = logicalInput[i]; auto it = sdfs.find(codePoint); - if (it == sdfs.end()) { + if (it == sdfs.end() || codePoint == 0x0a) { continue; } @@ -233,7 +233,9 @@ std::set<std::size_t> GlyphSet::determineLineBreaks(const std::u16string& logica insideParenthesesPenalty -= 10000000; } - currentX += it->second.metrics.advance + spacing; + if (it != sdfs.end()) { + currentX += it->second.metrics.advance + spacing; + } } return leastBadBreaks(evaluateBreak(logicalInput.size(), currentX, targetWidth, potentialBreaks, 0, true)); |