summaryrefslogtreecommitdiffstats
path: root/src/platformsupport/fontdatabases
diff options
context:
space:
mode:
authorJiang Jiang <jiang.jiang@nokia.com>2011-11-10 19:04:14 +0100
committerQt by Nokia <qt-info@nokia.com>2011-11-11 16:47:23 +0100
commitd495d86110c8579253393eadfd83548c49a5cf2f (patch)
tree379cac483766757cb8b2214e8624888290c89103 /src/platformsupport/fontdatabases
parent89cfe9eb01ad75c14121dbd6038b7c791226acf1 (diff)
Fix symbol fonts support with FT engine
It appears that the symbol_map we obtained with FreeType doesn't work for common symbol fonts like Wingdings, in previous X11 code we use the code path with normal charmap, to enable it we need to make sure QT_NO_FONTCONFIG is not defined. And since the FcCharset functions doesn't really operates on the font database, we can safely skip the mutex calls. Change-Id: I8c484de200be1d47c053b10be2c51d2273dcd359 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
Diffstat (limited to 'src/platformsupport/fontdatabases')
-rw-r--r--src/platformsupport/fontdatabases/fontconfig/fontconfig.pri1
-rw-r--r--src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp5
2 files changed, 6 insertions, 0 deletions
diff --git a/src/platformsupport/fontdatabases/fontconfig/fontconfig.pri b/src/platformsupport/fontdatabases/fontconfig/fontconfig.pri
index 2efcb4d4dc..7ea1c64e33 100644
--- a/src/platformsupport/fontdatabases/fontconfig/fontconfig.pri
+++ b/src/platformsupport/fontdatabases/fontconfig/fontconfig.pri
@@ -1,2 +1,3 @@
HEADERS += $$PWD/qfontconfigdatabase_p.h
SOURCES += $$PWD/qfontconfigdatabase.cpp
+DEFINES -= QT_NO_FONTCONFIG
diff --git a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp
index 3c37be209e..575fbb9af9 100644
--- a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp
+++ b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp
@@ -503,6 +503,7 @@ QFontEngine *QFontconfigDatabase::fontEngine(const QFontDef &f, QUnicodeTables::
FcResult result;
FcPattern *match = FcFontMatch(0, pattern, &result);
+ FcCharSet *charset;
if (match) {
QFontEngineFT::HintStyle default_hint_style;
@@ -549,6 +550,7 @@ QFontEngine *QFontconfigDatabase::fontEngine(const QFontDef &f, QUnicodeTables::
} else
format = QFontEngineFT::Format_Mono;
+ FcPatternGetCharSet(match, FC_CHARSET, 0, &charset);
FcPatternDestroy(match);
} else
format = antialias ? QFontEngineFT::Format_A8 : QFontEngineFT::Format_Mono;
@@ -571,6 +573,9 @@ QFontEngine *QFontconfigDatabase::fontEngine(const QFontDef &f, QUnicodeTables::
}
}
+ if (engine && engine->freetype && !engine->freetype->charset)
+ engine->freetype->charset = FcCharSetCopy(charset);
+
return engine;
}