summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlessandro Portale <alessandro.portale@nokia.com>2010-07-27 11:55:43 (GMT)
committerJason McDonald <jason.mcdonald@nokia.com>2010-09-01 06:36:49 (GMT)
commit50f9352059909217d19d7c2be3cfee4637bf8d11 (patch)
treec6b8963e48107c01a036427dc54921006c1ee8b5
parent465c2b01eba4c8a1b09be4d8d7661d76e4cf5426 (diff)
downloadQt-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.cpp5
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