From 9b911409cae5ec1eff9de76aca73a23c1ff84be9 Mon Sep 17 00:00:00 2001 From: Jyrki Gadinger Date: Mon, 19 May 2025 14:20:57 +0200 Subject: [PATCH] fix(gui): disable DirectWrite on Win10 versions before 1809 Earlier versions of Windows will render each character as a square when DirectWrite is in use. See also: #8064 Signed-off-by: Jyrki Gadinger --- src/gui/main.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/gui/main.cpp b/src/gui/main.cpp index 414a8b8f10..7a58216466 100644 --- a/src/gui/main.cpp +++ b/src/gui/main.cpp @@ -76,13 +76,18 @@ int main(int argc, char **argv) #if defined Q_OS_MAC qmlStyle = QStringLiteral("macOS"); #elif defined Q_OS_WIN - if (QOperatingSystemVersion::current().version() < QOperatingSystemVersion::Windows11.version()) { + if (const auto osVersion = QOperatingSystemVersion::current().version(); osVersion < QOperatingSystemVersion::Windows11.version()) { qmlStyle = QStringLiteral("Universal"); widgetsStyle = QStringLiteral("Fusion"); if (qEnvironmentVariableIsEmpty("QT_QUICK_CONTROLS_UNIVERSAL_THEME")) { // initialise theme with the light/dark mode setting from the OS qputenv("QT_QUICK_CONTROLS_UNIVERSAL_THEME", "System"); } + + if (osVersion < QOperatingSystemVersion::Windows10_1809.version() && qEnvironmentVariableIsEmpty("QT_QPA_PLATFORM")) { + // for Windows Server 2016 to display text as expected, see #8064 + qputenv("QT_QPA_PLATFORM", "windows:nodirectwrite"); + } } else { qmlStyle = QStringLiteral("FluentWinUI3"); widgetsStyle = QStringLiteral("windows11");