You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.6 KiB
42 lines
1.6 KiB
diff --git a/src/gui/kernel/qapplication.cpp b/src/gui/kernel/qapplication.cpp |
|
index acb115f..5316c40 100644 |
|
--- a/src/gui/kernel/qapplication.cpp |
|
+++ b/src/gui/kernel/qapplication.cpp |
|
@@ -3525,21 +3525,24 @@ void QApplication::commitData(QSessionManager& manager ) |
|
{ |
|
emit commitDataRequest(manager); |
|
if (manager.allowsInteraction()) { |
|
- QWidgetList done; |
|
- QWidgetList list = QApplication::topLevelWidgets(); |
|
- bool cancelled = false; |
|
- for (int i = 0; !cancelled && i < list.size(); ++i) { |
|
- QWidget* w = list.at(i); |
|
- if (w->isVisible() && !done.contains(w)) { |
|
- cancelled = !w->close(); |
|
- if (!cancelled) |
|
- done.append(w); |
|
- list = QApplication::topLevelWidgets(); |
|
- i = -1; |
|
+ const QString desktopEnv = qgetenv("XDG_CURRENT_DESKTOP"); |
|
+ if (!desktopEnv.startsWith(QLatin1String("GNOME"))) { |
|
+ QWidgetList done; |
|
+ QWidgetList list = QApplication::topLevelWidgets(); |
|
+ bool cancelled = false; |
|
+ for (int i = 0; !cancelled && i < list.size(); ++i) { |
|
+ QWidget* w = list.at(i); |
|
+ if (w->isVisible() && !done.contains(w)) { |
|
+ cancelled = !w->close(); |
|
+ if (!cancelled) |
|
+ done.append(w); |
|
+ list = QApplication::topLevelWidgets(); |
|
+ i = -1; |
|
+ } |
|
} |
|
+ if (cancelled) |
|
+ manager.cancel(); |
|
} |
|
- if (cancelled) |
|
- manager.cancel(); |
|
} |
|
} |
|
|
|
|