| diff --git a/src/client/qwaylandintegration.cpp b/src/client/qwaylandintegration.cpp |
| index 97e0203c..5bee160a 100644 |
| --- a/src/client/qwaylandintegration.cpp |
| +++ b/src/client/qwaylandintegration.cpp |
| @@ -99,20 +99,26 @@ public: |
| |
| if (QGuiApplication::desktopSettingsAware()) { |
| const QByteArray desktopEnvironment = QGuiApplicationPrivate::platformIntegration()->services()->desktopEnvironment(); |
| - |
| + QList<QByteArray> gtkBasedEnvironments; |
| + gtkBasedEnvironments << "GNOME" |
| + << "X-CINNAMON" |
| + << "UNITY" |
| + << "MATE" |
| + << "XFCE" |
| + << "LXDE"; |
| if (desktopEnvironment == QByteArrayLiteral("KDE")) { |
| #if QT_CONFIG(settings) |
| result.push_back(QStringLiteral("kde")); |
| #endif |
| - } else if (!desktopEnvironment.isEmpty() && |
| - desktopEnvironment != QByteArrayLiteral("UNKNOWN") && |
| - desktopEnvironment != QByteArrayLiteral("GNOME") && |
| - desktopEnvironment != QByteArrayLiteral("UNITY") && |
| - desktopEnvironment != QByteArrayLiteral("MATE") && |
| - desktopEnvironment != QByteArrayLiteral("XFCE") && |
| - desktopEnvironment != QByteArrayLiteral("LXDE")) |
| + } else if (gtkBasedEnvironments.contains(desktopEnvironment)) { |
| + // prefer the GTK3 theme implementation with native dialogs etc. |
| + result.push_back(QStringLiteral("gtk3")); |
| + // fallback to the generic Gnome theme if loading the GTK3 theme fails |
| + result.push_back(QLatin1String(QGnomeTheme::name)); |
| + } else if (!desktopEnvironment.isEmpty() && desktopEnvironment != QByteArrayLiteral("UNKNOWN")) { |
| // Ignore X11 desktop environments |
| result.push_back(QString::fromLocal8Bit(desktopEnvironment.toLower())); |
| + } |
| } |
| |
| if (result.isEmpty()) |