summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gui/kernel/qapplication_p.h3
-rw-r--r--src/gui/kernel/qwindowsysteminterface.cpp12
-rw-r--r--src/gui/kernel/qwindowsysteminterface.h2
3 files changed, 16 insertions, 1 deletions
diff --git a/src/gui/kernel/qapplication_p.h b/src/gui/kernel/qapplication_p.h
index 7202ae5..7ad8ca5 100644
--- a/src/gui/kernel/qapplication_p.h
+++ b/src/gui/kernel/qapplication_p.h
@@ -322,6 +322,9 @@ public:
#if defined(Q_WS_LITE)
static QPlatformIntegration *platformIntegration()
{ return platform_integration; }
+
+ static QAbstractEventDispatcher *qt_lite_core_dispatcher()
+ { return QCoreApplication::instance()->d_func()->threadData->eventDispatcher; }
#endif
void createEventDispatcher();
diff --git a/src/gui/kernel/qwindowsysteminterface.cpp b/src/gui/kernel/qwindowsysteminterface.cpp
index 05ca3d3..22b45ac 100644
--- a/src/gui/kernel/qwindowsysteminterface.cpp
+++ b/src/gui/kernel/qwindowsysteminterface.cpp
@@ -40,6 +40,7 @@
****************************************************************************/
#include "qwindowsysteminterface.h"
#include "qapplication_p.h"
+#include <QAbstractEventDispatcher>
QT_BEGIN_NAMESPACE
@@ -121,4 +122,15 @@ QWindowSystemInterface::UserEvent * QWindowSystemInterfacePrivate::getUserEvent(
queueMutex.unlock();
return ret;
}
+
+void QWindowSystemInterfacePrivate::queueUserEvent(QWindowSystemInterface::UserEvent *ev)
+{
+ queueMutex.lock();
+ userEventQueue.append(ev);
+ queueMutex.unlock();
+
+ QAbstractEventDispatcher *dispatcher = QApplicationPrivate::qt_lite_core_dispatcher();
+ if (dispatcher)
+ dispatcher->wakeUp();
+}
QT_END_NAMESPACE
diff --git a/src/gui/kernel/qwindowsysteminterface.h b/src/gui/kernel/qwindowsysteminterface.h
index d9bfc70..e0c46d1 100644
--- a/src/gui/kernel/qwindowsysteminterface.h
+++ b/src/gui/kernel/qwindowsysteminterface.h
@@ -133,7 +133,7 @@ public:
static int userEventsQueued() { queueMutex.lock(); int ret = userEventQueue.count(); queueMutex.unlock(); return ret; }
static QWindowSystemInterface::UserEvent * getUserEvent();
- static void queueUserEvent(QWindowSystemInterface::UserEvent *ev) { queueMutex.lock(); userEventQueue.append(ev); queueMutex.unlock(); }
+ static void queueUserEvent(QWindowSystemInterface::UserEvent *ev);
};
QT_END_NAMESPACE