diff options
Diffstat (limited to 'src/platformsupport')
-rw-r--r-- | src/platformsupport/fontdatabases/fontconfig/fontconfig.pri | 1 | ||||
-rw-r--r-- | src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp | 5 |
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; } |