summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Loer <chris.loer@gmail.com>2016-12-29 17:17:57 -0800
committerChris Loer <chris.loer@gmail.com>2016-12-29 17:17:57 -0800
commit084dba71fcd5bf915178fde30efb4b31b44f3df8 (patch)
tree545e18a5f8191a83d58981017de576d525746022
parent7778913153bc7358e50f2809236b9bbb84d92bef (diff)
downloadqtlocation-mapboxgl-upstream/cloer_no_parentheses_break.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.cpp6
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));