diff options
author | Jiang Jiang <jiang.jiang@nokia.com> | 2010-08-26 16:16:59 +0200 |
---|---|---|
committer | Jiang Jiang <jiang.jiang@nokia.com> | 2010-08-27 16:51:57 +0200 |
commit | 40b6c1dd9199ac5e0d6a1921b05c11e647d09dca (patch) | |
tree | 74925154b039df1df12207ef5661fdbabe96dd5c /src/gui/text/qfontengine_p.h | |
parent | a2fd1b5265b1c6e9b3d8e1a03ddb2675f5df748d (diff) |
Correct last right bearing in boundingBox(glyphs)
Commit 07880542ecc479807c23c5646d263135240822ff introduced regression to
QFontMetrics::boundingRect and QTextEngine::boundingBox on FT, XLFD and
QPF font engine. Because on these platforms, rightBearing of the last
glyphs is already removed from the width returned in glyph_metrics_t.
Subtracting that rightBearing twice will cause the resulting boundingBox
smaller than expected.
This patch fix this by removing last right bearing accounting code from
generic QTextEngine::boundingBox, instead, we put it into font engines
that need them: QFontEngineWin, QCoreTextFontEngine, QFontEngineMac,
QFontEngineS60 and QFontEngineQWS. So that the resulting width should be
correct on all platforms without introducing any performance penalties.
Task-number: QTBUG-6854, QTBUG-12950
Reviewed-by: Eskil
Diffstat (limited to 'src/gui/text/qfontengine_p.h')
-rw-r--r-- | src/gui/text/qfontengine_p.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/gui/text/qfontengine_p.h b/src/gui/text/qfontengine_p.h index 922acfb34c..3b91cd829a 100644 --- a/src/gui/text/qfontengine_p.h +++ b/src/gui/text/qfontengine_p.h @@ -253,6 +253,7 @@ public: protected: static const QVector<QRgb> &grayPalette(); + QFixed lastRightBearing(const QGlyphLayout &glyphs, bool round = false); private: struct GlyphCacheEntry { |