diff options
author | Allan Sandfeld Jensen <allan.jensen@digia.com> | 2013-09-04 11:47:33 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-09 15:30:08 +0200 |
commit | 2ad331465c3b19d56edb9b744b66e908f03294d3 (patch) | |
tree | 862df86f964a59d1edccba348bc2640b469b4c1c /src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp | |
parent | 295977e77f2b78ff729c3c57b5b43f57ebe60949 (diff) |
QRawFont::fromFont does not get antialias setting from fontconfig
When creating a fontengine in QFontconfigDatabase::fontEngine we
solely base the antialias setting on the QFont StyleStrategy and forget
to ask fontconfig it has an overriding definition for this font match.
This patch will now let fontconfig decide the antialias setting unless the
NoAntialias stylestrategy has been set.
Change-Id: I67981582a37cfd3c59aa1db929095585af554088
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Diffstat (limited to 'src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp')
-rw-r--r-- | src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp index afe634dc4b..d555ada95a 100644 --- a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp +++ b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp @@ -565,6 +565,14 @@ QFontEngine *QFontconfigDatabase::fontEngine(const QFontDef &f, QChar::Script sc } } + if (antialias) { + // If antialiasing is not fully disabled, fontconfig may still disable it on a font match basis. + FcBool fc_antialias; + if (FcPatternGetBool(match, FC_ANTIALIAS,0, &fc_antialias) != FcResultMatch) + fc_antialias = true; + antialias = fc_antialias; + } + if (f.hintingPreference == QFont::PreferDefaultHinting) { const QPlatformServices *services = QGuiApplicationPrivate::platformIntegration()->services(); if (services && (services->desktopEnvironment() == "GNOME" || services->desktopEnvironment() == "UNITY")) { |