diff options
author | Alessandro Portale <alessandro.portale@nokia.com> | 2010-07-27 11:55:43 (GMT) |
---|---|---|
committer | Jason McDonald <jason.mcdonald@nokia.com> | 2010-09-01 06:36:49 (GMT) |
commit | 50f9352059909217d19d7c2be3cfee4637bf8d11 (patch) | |
tree | c6b8963e48107c01a036427dc54921006c1ee8b5 | |
parent | 465c2b01eba4c8a1b09be4d8d7661d76e4cf5426 (diff) | |
download | Qt-50f9352059909217d19d7c2be3cfee4637bf8d11.zip Qt-50f9352059909217d19d7c2be3cfee4637bf8d11.tar.gz Qt-50f9352059909217d19d7c2be3cfee4637bf8d11.tar.bz2 |
Workaround for QTBUG-8013: Do not return an ascent of 0
Symbian's CFont::FontMaxAscent() returns in some cases an
incorrect value of 0. That usually happens (for some font sizes)
if a stroke based font is the main system font.
We were able to reproduce it on some S60 3.2 devices with a
chinese language pack installed.
This patch will test if CFont::FontMaxAscent() returns 0. And if
so, it alculates an ascent taht makes more sense.
Task-number: QTBUG-8013
Reviewed-by: Liang Qi
(cherry picked from commit f4f10d2a2d60790939492694abf6b9578a5f048a)
-rw-r--r-- | src/gui/text/qfontengine_s60.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/gui/text/qfontengine_s60.cpp b/src/gui/text/qfontengine_s60.cpp index f691413..098d46f 100644 --- a/src/gui/text/qfontengine_s60.cpp +++ b/src/gui/text/qfontengine_s60.cpp @@ -374,7 +374,10 @@ glyph_metrics_t QFontEngineS60::boundingBox(glyph_t glyph) QFixed QFontEngineS60::ascent() const { - return m_originalFont->FontMaxAscent(); + // Workaround for QTBUG-8013 + // Stroke based fonts may return an incorrect FontMaxAscent of 0. + const QFixed ascent = m_originalFont->FontMaxAscent(); + return (ascent > 0) ? ascent : QFixed::fromReal(m_originalFontSizeInPixels) - descent(); } QFixed QFontEngineS60::descent() const |