From 2ad331465c3b19d56edb9b744b66e908f03294d3 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Wed, 4 Sep 2013 11:47:33 +0200 Subject: 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 Reviewed-by: Pierre Rossi --- .../fontdatabases/fontconfig/qfontconfigdatabase.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/platformsupport/fontdatabases') 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")) { -- cgit v1.2.3