summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gui/kernel/qwindowsysteminterface.cpp18
-rw-r--r--src/gui/kernel/qwindowsysteminterface.h3
-rw-r--r--src/platformsupport/eventdispatchers/qeventdispatcher_cf.mm4
-rw-r--r--src/platformsupport/eventdispatchers/qunixeventdispatcher.cpp9
-rw-r--r--src/plugins/platforms/cocoa/qcocoaeventdispatcher.mm1
-rw-r--r--src/plugins/platforms/offscreen/qoffscreenintegration.cpp4
-rw-r--r--src/plugins/platforms/qnx/qqnxeventdispatcher_blackberry.cpp8
-rw-r--r--src/plugins/platforms/windows/qwindowsguieventdispatcher.cpp2
8 files changed, 19 insertions, 30 deletions
diff --git a/src/gui/kernel/qwindowsysteminterface.cpp b/src/gui/kernel/qwindowsysteminterface.cpp
index 7b57313645..d62330083e 100644
--- a/src/gui/kernel/qwindowsysteminterface.cpp
+++ b/src/gui/kernel/qwindowsysteminterface.cpp
@@ -553,23 +553,12 @@ void QWindowSystemInterface::flushWindowSystemEvents()
QWindowSystemInterfacePrivate::handleWindowSystemEvent(e);
QWindowSystemInterfacePrivate::eventsFlushed.wait(&QWindowSystemInterfacePrivate::flushEventMutex);
} else {
- sendWindowSystemEventsImplementation(QEventLoop::AllEvents);
+ sendWindowSystemEvents(QEventLoop::AllEvents);
}
}
bool QWindowSystemInterface::sendWindowSystemEvents(QEventLoop::ProcessEventsFlags flags)
{
- QCoreApplication::sendPostedEvents(); // handle gui and posted events
- return sendWindowSystemEventsImplementation(flags);
-}
-
-void QWindowSystemInterface::setSynchronousWindowsSystemEvents(bool enable)
-{
- QWindowSystemInterfacePrivate::synchronousWindowsSystemEvents = enable;
-}
-
-bool QWindowSystemInterface::sendWindowSystemEventsImplementation(QEventLoop::ProcessEventsFlags flags)
-{
int nevents = 0;
while (QWindowSystemInterfacePrivate::windowSystemEventsQueued()) {
@@ -587,6 +576,11 @@ bool QWindowSystemInterface::sendWindowSystemEventsImplementation(QEventLoop::Pr
return (nevents > 0);
}
+void QWindowSystemInterface::setSynchronousWindowsSystemEvents(bool enable)
+{
+ QWindowSystemInterfacePrivate::synchronousWindowsSystemEvents = enable;
+}
+
int QWindowSystemInterface::windowSystemEventsQueued()
{
return QWindowSystemInterfacePrivate::windowSystemEventsQueued();
diff --git a/src/gui/kernel/qwindowsysteminterface.h b/src/gui/kernel/qwindowsysteminterface.h
index cac943cda1..c8e464f985 100644
--- a/src/gui/kernel/qwindowsysteminterface.h
+++ b/src/gui/kernel/qwindowsysteminterface.h
@@ -193,9 +193,6 @@ public:
static void flushWindowSystemEvents();
static void deferredFlushWindowSystemEvents();
static int windowSystemEventsQueued();
-
-private:
- static bool sendWindowSystemEventsImplementation(QEventLoop::ProcessEventsFlags flags);
};
#ifndef QT_NO_DEBUG_STREAM
diff --git a/src/platformsupport/eventdispatchers/qeventdispatcher_cf.mm b/src/platformsupport/eventdispatchers/qeventdispatcher_cf.mm
index 6442df715a..ed86a33782 100644
--- a/src/platformsupport/eventdispatchers/qeventdispatcher_cf.mm
+++ b/src/platformsupport/eventdispatchers/qeventdispatcher_cf.mm
@@ -388,6 +388,10 @@ void QEventDispatcherCoreFoundation::processPostedEvents()
m_processEvents.processedPostedEvents = true;
+ qEventDispatcherDebug() << "Sending posted events for " << m_processEvents.flags; qIndent();
+ QCoreApplication::sendPostedEvents();
+ qUnIndent();
+
qEventDispatcherDebug() << "Sending window system events for " << m_processEvents.flags; qIndent();
QWindowSystemInterface::sendWindowSystemEvents(m_processEvents.flags);
qUnIndent();
diff --git a/src/platformsupport/eventdispatchers/qunixeventdispatcher.cpp b/src/platformsupport/eventdispatchers/qunixeventdispatcher.cpp
index 20ef91c7d8..5e07832c07 100644
--- a/src/platformsupport/eventdispatchers/qunixeventdispatcher.cpp
+++ b/src/platformsupport/eventdispatchers/qunixeventdispatcher.cpp
@@ -67,13 +67,8 @@ QUnixEventDispatcherQPA::~QUnixEventDispatcherQPA()
bool QUnixEventDispatcherQPA::processEvents(QEventLoop::ProcessEventsFlags flags)
{
- const bool didSendEvents = QWindowSystemInterface::sendWindowSystemEvents(flags);
-
- if (QEventDispatcherUNIX::processEvents(flags)) {
- return true;
- }
-
- return didSendEvents;
+ const bool didSendEvents = QEventDispatcherUNIX::processEvents(flags);
+ return QWindowSystemInterface::sendWindowSystemEvents(flags) || didSendEvents;
}
bool QUnixEventDispatcherQPA::hasPendingEvents()
diff --git a/src/plugins/platforms/cocoa/qcocoaeventdispatcher.mm b/src/plugins/platforms/cocoa/qcocoaeventdispatcher.mm
index 9a661ffe5a..8dfaacdf13 100644
--- a/src/plugins/platforms/cocoa/qcocoaeventdispatcher.mm
+++ b/src/plugins/platforms/cocoa/qcocoaeventdispatcher.mm
@@ -876,6 +876,7 @@ void QCocoaEventDispatcherPrivate::processPostedEvents()
int serial = serialNumber.load();
if (!threadData->canWait || (serial != lastSerial)) {
lastSerial = serial;
+ QCoreApplication::sendPostedEvents();
QWindowSystemInterface::sendWindowSystemEvents(QEventLoop::AllEvents);
}
}
diff --git a/src/plugins/platforms/offscreen/qoffscreenintegration.cpp b/src/plugins/platforms/offscreen/qoffscreenintegration.cpp
index 5b74ad3b8d..bce52963df 100644
--- a/src/plugins/platforms/offscreen/qoffscreenintegration.cpp
+++ b/src/plugins/platforms/offscreen/qoffscreenintegration.cpp
@@ -73,9 +73,9 @@ public:
bool processEvents(QEventLoop::ProcessEventsFlags flags)
{
- bool didSendEvents = QWindowSystemInterface::sendWindowSystemEvents(flags);
+ bool didSendEvents = BaseEventDispatcher::processEvents(flags);
- return BaseEventDispatcher::processEvents(flags) || didSendEvents;
+ return QWindowSystemInterface::sendWindowSystemEvents(flags) || didSendEvents;
}
bool hasPendingEvents()
diff --git a/src/plugins/platforms/qnx/qqnxeventdispatcher_blackberry.cpp b/src/plugins/platforms/qnx/qqnxeventdispatcher_blackberry.cpp
index 87ce64da5e..42fd0ed8bf 100644
--- a/src/plugins/platforms/qnx/qqnxeventdispatcher_blackberry.cpp
+++ b/src/plugins/platforms/qnx/qqnxeventdispatcher_blackberry.cpp
@@ -58,12 +58,8 @@ QQnxEventDispatcherBlackberry::~QQnxEventDispatcherBlackberry()
bool QQnxEventDispatcherBlackberry::processEvents(QEventLoop::ProcessEventsFlags flags)
{
- const bool didSendEvents = QWindowSystemInterface::sendWindowSystemEvents(flags);
-
- if (QEventDispatcherBlackberry::processEvents(flags))
- return true;
-
- return didSendEvents;
+ const bool didSendEvents = QEventDispatcherBlackberry::processEvents(flags);
+ return QWindowSystemInterface::sendWindowSystemEvents(flags) || didSendEvents;
}
bool QQnxEventDispatcherBlackberry::hasPendingEvents()
diff --git a/src/plugins/platforms/windows/qwindowsguieventdispatcher.cpp b/src/plugins/platforms/windows/qwindowsguieventdispatcher.cpp
index 0d7de2da39..6be71999f6 100644
--- a/src/plugins/platforms/windows/qwindowsguieventdispatcher.cpp
+++ b/src/plugins/platforms/windows/qwindowsguieventdispatcher.cpp
@@ -44,6 +44,7 @@
#include <qpa/qwindowsysteminterface.h>
+#include <QtCore/QCoreApplication>
#include <QtCore/QStack>
#include <QtCore/QDebug>
@@ -83,6 +84,7 @@ bool QWindowsGuiEventDispatcher::processEvents(QEventLoop::ProcessEventsFlags fl
void QWindowsGuiEventDispatcher::sendPostedEvents()
{
+ QCoreApplication::sendPostedEvents();
QWindowSystemInterface::sendWindowSystemEvents(m_flags);
}