summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qguiapplication.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/kernel/qguiapplication.cpp')
-rw-r--r--src/gui/kernel/qguiapplication.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp
index 3c3cea2910..77c9978a9e 100644
--- a/src/gui/kernel/qguiapplication.cpp
+++ b/src/gui/kernel/qguiapplication.cpp
@@ -789,7 +789,7 @@ static void init_platform(const QString &pluginArgument, const QString &platform
fatalMessage += QStringLiteral("Available platforms are: %1\n").arg(
keys.join(QStringLiteral(", ")));
fatalMessage += QStringLiteral("GUI applications require a platform plugin. Terminating.");
- qFatal(qPrintable(fatalMessage));
+ qFatal("%s", qPrintable(fatalMessage));
return;
}
@@ -2479,10 +2479,18 @@ void QGuiApplicationPrivate::emitLastWindowClosed()
bool QGuiApplicationPrivate::shouldQuit()
{
+ const QWindowList processedWindows;
+ return shouldQuitInternal(processedWindows);
+}
+
+bool QGuiApplicationPrivate::shouldQuitInternal(const QWindowList &processedWindows)
+{
/* if there is no visible top-level window left, we allow the quit */
QWindowList list = QGuiApplication::topLevelWindows();
for (int i = 0; i < list.size(); ++i) {
QWindow *w = list.at(i);
+ if (processedWindows.contains(w))
+ continue;
if (w->isVisible() && !w->transientParent())
return false;
}