summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gui/kernel/qplatformintegration_qpa.cpp12
-rw-r--r--src/plugins/platforms/minimal/qminimalintegration.cpp20
-rw-r--r--src/plugins/platforms/minimal/qminimalintegration.h4
3 files changed, 24 insertions, 12 deletions
diff --git a/src/gui/kernel/qplatformintegration_qpa.cpp b/src/gui/kernel/qplatformintegration_qpa.cpp
index ec12ef12a5..04f1bd392a 100644
--- a/src/gui/kernel/qplatformintegration_qpa.cpp
+++ b/src/gui/kernel/qplatformintegration_qpa.cpp
@@ -171,11 +171,15 @@ QPlatformNativeInterface * QPlatformIntegration::nativeInterface() const
*/
/*!
- \fn QAbstractEventDispatcher *createEventDispatcher() const
- Factory function for the event dispatcher. The platform plugin
- must create and and return a QAbstractEventDispatcher subclass when
- this function is called.
+ \fn QAbstractEventDispatcher *guiThreadEventDispatcher() const = 0
+
+ Accessor function for the event dispatcher. The platform plugin should create
+ an instance of the QAbstractEventDispatcher in its constructor and set it
+ on the application using QGuiApplicationPrivate::instance()->setEventDispatcher().
+ The event dispatcher is owned by QGuiApplication, the accessor should return
+ a flat pointer.
+ \sa QGuiApplicationPrivate
*/
bool QPlatformIntegration::hasCapability(Capability cap) const
diff --git a/src/plugins/platforms/minimal/qminimalintegration.cpp b/src/plugins/platforms/minimal/qminimalintegration.cpp
index 8d8e5e7f06..2f2da6967a 100644
--- a/src/plugins/platforms/minimal/qminimalintegration.cpp
+++ b/src/plugins/platforms/minimal/qminimalintegration.cpp
@@ -48,10 +48,19 @@
#endif
#include <QtGui/private/qpixmap_raster_p.h>
+#include <QtGui/private/qguiapplication_p.h>
#include <QtGui/QPlatformWindow>
-QMinimalIntegration::QMinimalIntegration()
+QT_BEGIN_NAMESPACE
+
+QMinimalIntegration::QMinimalIntegration() :
+#ifdef Q_OS_WIN
+ m_eventDispatcher(new QEventDispatcherWin32())
+#else
+ m_eventDispatcher(createUnixEventDispatcher())
+#endif
{
+ QGuiApplicationPrivate::instance()->setEventDispatcher(m_eventDispatcher);
QMinimalScreen *mPrimaryScreen = new QMinimalScreen();
mPrimaryScreen->mGeometry = QRect(0, 0, 240, 320);
@@ -80,12 +89,9 @@ QPlatformBackingStore *QMinimalIntegration::createPlatformBackingStore(QWindow *
return new QMinimalBackingStore(window);
}
-QAbstractEventDispatcher *QMinimalIntegration::createEventDispatcher() const
+QAbstractEventDispatcher *QMinimalIntegration::guiThreadEventDispatcher() const
{
-#ifndef Q_OS_WIN
- return createUnixEventDispatcher();
-#else
- return new QEventDispatcherWin32();
-#endif
+ return m_eventDispatcher;
}
+QT_END_NAMESPACE
diff --git a/src/plugins/platforms/minimal/qminimalintegration.h b/src/plugins/platforms/minimal/qminimalintegration.h
index d64932c5e6..0835c39ab6 100644
--- a/src/plugins/platforms/minimal/qminimalintegration.h
+++ b/src/plugins/platforms/minimal/qminimalintegration.h
@@ -73,8 +73,10 @@ public:
QPlatformWindow *createPlatformWindow(QWindow *window) const;
QPlatformBackingStore *createPlatformBackingStore(QWindow *window) const;
+ QAbstractEventDispatcher *guiThreadEventDispatcher() const;
- QAbstractEventDispatcher *createEventDispatcher() const;
+private:
+ QAbstractEventDispatcher *m_eventDispatcher;
};
QT_END_NAMESPACE