42 lines
1.8 KiB
Diff
42 lines
1.8 KiB
Diff
|
From 80e3108f5cd1e1850ec81a21100d79a0946addd7 Mon Sep 17 00:00:00 2001
|
||
|
From: Miikka Heikkinen <miikka.heikkinen@digia.com>
|
||
|
Date: Fri, 16 Mar 2012 11:13:55 +0200
|
||
|
Subject: [PATCH 72/74] Fix font cache check in QFontEngineFT::recalcAdvances()
|
||
|
MIME-Version: 1.0
|
||
|
Content-Type: text/plain; charset=UTF-8
|
||
|
Content-Transfer-Encoding: 8bit
|
||
|
|
||
|
Cached font was used regardless of the format, resulting in incorrect
|
||
|
advance in some cases when default format differed from the cached
|
||
|
format.
|
||
|
|
||
|
Task-number: QTBUG-24188
|
||
|
Change-Id: I39e4156bd9ba743afa7e106e934c90227fbf2b8b
|
||
|
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
|
||
|
(cherry picked from qtbase/2ea976c3a713535c2419d936d575e0b24545f0fa)
|
||
|
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
|
||
|
Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com>
|
||
|
Reviewed-by: Jiang Jiang <gzjjgod@gmail.com>
|
||
|
---
|
||
|
src/gui/text/qfontengine_ft.cpp | 4 +++-
|
||
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/src/gui/text/qfontengine_ft.cpp b/src/gui/text/qfontengine_ft.cpp
|
||
|
index aecbf76..44a0aca 100644
|
||
|
--- a/src/gui/text/qfontengine_ft.cpp
|
||
|
+++ b/src/gui/text/qfontengine_ft.cpp
|
||
|
@@ -1603,7 +1603,9 @@ void QFontEngineFT::recalcAdvances(QGlyphLayout *glyphs, QTextEngine::ShaperFlag
|
||
|
(flags & HB_ShaperFlag_UseDesignMetrics)) && FT_IS_SCALABLE(freetype->face);
|
||
|
for (int i = 0; i < glyphs->numGlyphs; i++) {
|
||
|
Glyph *g = defaultGlyphSet.getGlyph(glyphs->glyphs[i]);
|
||
|
- if (g) {
|
||
|
+ // Since we are passing Format_None to loadGlyph, use same default format logic as loadGlyph
|
||
|
+ GlyphFormat acceptableFormat = (defaultFormat != Format_None) ? defaultFormat : Format_Mono;
|
||
|
+ if (g && g->format == acceptableFormat) {
|
||
|
glyphs->advances_x[i] = design ? QFixed::fromFixed(g->linearAdvance) : QFixed(g->advance);
|
||
|
} else {
|
||
|
if (!face)
|
||
|
--
|
||
|
1.9.3
|
||
|
|