diff --git a/src/gui/image/qfonticonengine.cpp b/src/gui/image/qfonticonengine.cpp index e8e76271d19..e98fa1bffdd 100644 --- a/src/gui/image/qfonticonengine.cpp +++ b/src/gui/image/qfonticonengine.cpp @@ -25,6 +25,8 @@ QFontIconEngine::QFontIconEngine(const QString &iconName, const QFont &font) : m_iconName(iconName) , m_iconFont(font) { + Q_ASSERT_X(font.styleStrategy() & QFont::NoFontMerging, "QFontIconEngine", + "Icon fonts must not use font merging"); } QFontIconEngine::~QFontIconEngine() = default; diff --git a/src/plugins/platforms/android/qandroidplatformiconengine.cpp b/src/plugins/platforms/android/qandroidplatformiconengine.cpp index 3d33d747455..bab6eeb9d4a 100644 --- a/src/plugins/platforms/android/qandroidplatformiconengine.cpp +++ b/src/plugins/platforms/android/qandroidplatformiconengine.cpp @@ -249,7 +249,9 @@ static QFont selectFont() // last resort - use any Material Icons if (fontFamily.isEmpty()) fontFamily = u"Material Icons"_s; - return QFont(fontFamily); + QFont font(fontFamily); + font.setStyleStrategy(QFont::NoFontMerging); + return font; } } // namespace FontProvider diff --git a/src/plugins/platforms/windows/qwindowsiconengine.cpp b/src/plugins/platforms/windows/qwindowsiconengine.cpp index 272b56be836..71103183183 100644 --- a/src/plugins/platforms/windows/qwindowsiconengine.cpp +++ b/src/plugins/platforms/windows/qwindowsiconengine.cpp @@ -286,16 +286,18 @@ static QString getGlyphs(QStringView iconName) } namespace { -static auto iconFontFamily() +static auto iconFont() { static const bool isWindows11 = QOperatingSystemVersion::current() >= QOperatingSystemVersion::Windows11; - return isWindows11 ? u"Segoe Fluent Icons"_s - : u"Segoe MDL2 Assets"_s; + QFont font(isWindows11 ? u"Segoe Fluent Icons"_s + : u"Segoe MDL2 Assets"_s); + font.setStyleStrategy(QFont::NoFontMerging); + return font; } } QWindowsIconEngine::QWindowsIconEngine(const QString &iconName) - : QFontIconEngine(iconName, iconFontFamily()) + : QFontIconEngine(iconName, iconFont()) , m_glyphs(getGlyphs(iconName)) { }