summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2013-06-20 16:45:12 +0200
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2013-06-20 16:45:12 +0200
commit6213b8145772d3dc584907a544f6c46b8cef74e2 (patch)
tree4c1902793bb78511e63c09cbe92f9eda6b3d7237 /src/gui/kernel
parent75e9c7d6bc662e62e9ce8b641588183992c1e8bf (diff)
parent25739bebba0343a8b35775a073c49f0fba080762 (diff)
Merge remote-tracking branch 'origin/stable' into dev
Conflicts: src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm src/plugins/platforms/qnx/qqnxrasterbackingstore.cpp tools/configure/configureapp.cpp Change-Id: I3092bd3276af14304b7ab3ae1e1cc05d11cdede0
Diffstat (limited to 'src/gui/kernel')
-rw-r--r--src/gui/kernel/qevent.h9
-rw-r--r--src/gui/kernel/qguiapplication.cpp10
-rw-r--r--src/gui/kernel/qguiapplication_p.h2
3 files changed, 19 insertions, 2 deletions
diff --git a/src/gui/kernel/qevent.h b/src/gui/kernel/qevent.h
index 79dcc6d250..82276c5342 100644
--- a/src/gui/kernel/qevent.h
+++ b/src/gui/kernel/qevent.h
@@ -860,7 +860,14 @@ public:
void setContentPos(const QPointF &pos);
private:
- QObject* m_target;
+#ifdef Q_CC_CLANG
+# pragma clang diagnostic push
+# pragma clang diagnostic ignored "-Wunused-private-field"
+#endif // Q_CC_CLANG
+ QObject* m_target; // Qt 6 remove.
+#ifdef Q_CC_CLANG
+# pragma clang diagnostic pop
+#endif // Q_CC_CLANG
QPointF m_startPos;
QSizeF m_viewportSize;
QRectF m_contentPosRange;
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;
}
diff --git a/src/gui/kernel/qguiapplication_p.h b/src/gui/kernel/qguiapplication_p.h
index cd8dfff103..3a4b692b69 100644
--- a/src/gui/kernel/qguiapplication_p.h
+++ b/src/gui/kernel/qguiapplication_p.h
@@ -91,6 +91,8 @@ public:
virtual bool shouldQuit();
+ bool shouldQuitInternal(const QWindowList &processedWindows);
+
static Qt::KeyboardModifiers modifier_buttons;
static Qt::MouseButtons mouse_buttons;