diff options
| author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-07-10 10:11:10 +0200 |
|---|---|---|
| committer | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-07-10 10:11:11 +0200 |
| commit | f035786021e9f7b1d9512b22774bc15553caaedb (patch) | |
| tree | c46a29ed3657944d9f36d8643a99fad469235bc4 /src/gui/text/qtextengine.cpp | |
| parent | 72024fd50cdead8d890886dba32fd81ac54ff3ae (diff) | |
| parent | 916c9d469bd0df227dc3be97fcca27e3cf58144f (diff) | |
Merge remote-tracking branch 'origin/5.3' into dev
Change-Id: Ia12ffdb27ecdf25c2a2bdb0eed1945387502108a
Diffstat (limited to 'src/gui/text/qtextengine.cpp')
| -rw-r--r-- | src/gui/text/qtextengine.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp index ef0ae4a1464..3b6a988e97d 100644 --- a/src/gui/text/qtextengine.cpp +++ b/src/gui/text/qtextengine.cpp @@ -1292,8 +1292,12 @@ int QTextEngine::shapeTextWithHarfbuzz(const QScriptItem &si, const ushort *stri attrs.justification = hbAttrs.justification; } - for (quint32 i = 0; i < shaper_item.item.length; ++i) + for (quint32 i = 0; i < shaper_item.item.length; ++i) { + // Workaround wrong log_clusters for surrogates (i.e. QTBUG-39875) + if (shaper_item.log_clusters[i] >= shaper_item.num_glyphs) + shaper_item.log_clusters[i] = shaper_item.num_glyphs - 1; shaper_item.log_clusters[i] += glyph_pos; + } if (kerningEnabled && !shaper_item.kerning_applied) actualFontEngine->doKerning(&g, option.useDesignMetrics() ? QFontEngine::DesignMetrics : QFontEngine::ShaperFlags(0)); |
