diff --git a/launcher/ui/themes/SystemTheme.cpp b/launcher/ui/themes/SystemTheme.cpp index 31f6a96ab..59644ddde 100644 --- a/launcher/ui/themes/SystemTheme.cpp +++ b/launcher/ui/themes/SystemTheme.cpp @@ -47,6 +47,18 @@ SystemTheme::SystemTheme(const QString& styleName, bool isDefaultTheme) colorPalette = QStyleFactory::create(styleName)->standardPalette(); } +void SystemTheme::apply(bool initial) +{ + // See https://github.com/MultiMC/Launcher/issues/1790 + // or https://github.com/PrismLauncher/PrismLauncher/issues/490 + if (initial && themeName == "system") { + QApplication::setStyle(new HintOverrideProxyStyle(QStyleFactory::create(qtTheme()))); + return; + } + + ITheme::apply(initial); +} + QString SystemTheme::id() { return themeName; diff --git a/launcher/ui/themes/SystemTheme.h b/launcher/ui/themes/SystemTheme.h index 195b8e368..09db1a322 100644 --- a/launcher/ui/themes/SystemTheme.h +++ b/launcher/ui/themes/SystemTheme.h @@ -40,6 +40,7 @@ class SystemTheme : public ITheme { public: SystemTheme(const QString& styleName, bool isDefaultTheme); virtual ~SystemTheme() {} + void apply(bool initial) override; QString id() override; QString name() override;