diff --git a/src/gui/text/coretext/qfontengine_coretext_p.h b/src/gui/text/coretext/qfontengine_coretext_p.h index 1b8a7e0d2a3..726abd61d56 100644 --- a/src/gui/text/coretext/qfontengine_coretext_p.h +++ b/src/gui/text/coretext/qfontengine_coretext_p.h @@ -54,7 +54,7 @@ public: bool canRender(const QChar *string, int len) const override; int synthesized() const override { return synthesisFlags; } - bool supportsHorizontalSubPixelPositions() const override { return true; } + bool supportsHorizontalSubPixelPositions() const override { return !isColorFont(); } bool supportsVerticalSubPixelPositions() const override { return false; } QFixed lineThickness() const override; diff --git a/src/gui/text/freetype/qfontengine_ft_p.h b/src/gui/text/freetype/qfontengine_ft_p.h index d2fa82b81df..924131699a0 100644 --- a/src/gui/text/freetype/qfontengine_ft_p.h +++ b/src/gui/text/freetype/qfontengine_ft_p.h @@ -158,8 +158,9 @@ private: QFixed emSquareSize() const override; bool supportsHorizontalSubPixelPositions() const override { - return default_hint_style == HintLight || - default_hint_style == HintNone; + return !isColorFont() + && (default_hint_style == HintLight || + default_hint_style == HintNone); } bool supportsVerticalSubPixelPositions() const override diff --git a/src/gui/text/windows/qwindowsfontenginedirectwrite.cpp b/src/gui/text/windows/qwindowsfontenginedirectwrite.cpp index 3ab6fe723d7..049a3e5885f 100644 --- a/src/gui/text/windows/qwindowsfontenginedirectwrite.cpp +++ b/src/gui/text/windows/qwindowsfontenginedirectwrite.cpp @@ -749,7 +749,8 @@ QImage QWindowsFontEngineDirectWrite::alphaMapForGlyph(glyph_t glyph, bool QWindowsFontEngineDirectWrite::supportsHorizontalSubPixelPositions() const { DWRITE_RENDERING_MODE renderMode = hintingPreferenceToRenderingMode(fontDef); - return (renderMode != DWRITE_RENDERING_MODE_GDI_CLASSIC + return (!isColorFont() + && renderMode != DWRITE_RENDERING_MODE_GDI_CLASSIC && renderMode != DWRITE_RENDERING_MODE_GDI_NATURAL && renderMode != DWRITE_RENDERING_MODE_ALIASED); }