diff options
author | Fan RuiJie <fanruijie@uniontech.com> | 2021-08-30 10:26:59 +0800 |
---|---|---|
committer | Fan RuiJie <fanruijie@uniontech.com> | 2021-08-31 14:53:45 +0000 |
commit | 586d9e6013de94e5affd0ea6b079799cce069f2d (patch) | |
tree | d3cb6a88aaaa8278eb6f8b42b5bc91dbac5a44bf /src/gui/text | |
parent | 6e9cae0b77dbc9a59e500ea8ceb6b60b74b1988b (diff) |
Fix text ellipsis not implemented in Tibetan
The original code checks the existence of an ellipsis character first.If
this does not exist (glyph == 0,which is an invalid glyph index), then
it falls back to looking up '.'. But in the Tibetan environment,the
glyphIndex('.') also returns 0, so that it simply doesn't add any form
of "...", and cuts the text instead.
If both the attempts at getting something from the main font fails,
we can do a third pass on the "multi" font engine.
Fixes: QTBUG-95942
Pick-to: 6.1 6.2
Done-with: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Change-Id: I251de3fe92e19be0462c58c2059ecf7d354bfbb0
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Diffstat (limited to 'src/gui/text')
-rw-r--r-- | src/gui/text/qtextengine.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp index 464de23dd4..b8ffaf3151 100644 --- a/src/gui/text/qtextengine.cpp +++ b/src/gui/text/qtextengine.cpp @@ -3095,6 +3095,11 @@ QString QTextEngine::elidedText(Qt::TextElideMode mode, const QFixed &width, int ellipsisWidth *= 3; ellipsisText = QStringLiteral("..."); + } else { + engine = fnt.d->engineForScript(QChar::Script_Common); + glyph = engine->glyphIndex(ellipsisChar.unicode()); + engine->recalcAdvances(&glyphs, { }); + ellipsisText = ellipsisChar; } } } |