diff --git a/src/gui/text/coretext/qfontengine_coretext_p.h b/src/gui/text/coretext/qfontengine_coretext_p.h index 2f388c32bcf..d24707cd0dc 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 ec4164bfd82..b73b7261be6 100644 --- a/src/gui/text/freetype/qfontengine_ft_p.h +++ b/src/gui/text/freetype/qfontengine_ft_p.h @@ -152,8 +152,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 4f73633667a..764c2854f43 100644 --- a/src/gui/text/windows/qwindowsfontenginedirectwrite.cpp +++ b/src/gui/text/windows/qwindowsfontenginedirectwrite.cpp @@ -688,7 +688,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); }