40 lines
2.0 KiB
Diff
40 lines
2.0 KiB
Diff
|
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())
|