summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/qnx/qqnxintegration.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/qnx/qqnxintegration.cpp')
-rw-r--r--src/plugins/platforms/qnx/qqnxintegration.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/plugins/platforms/qnx/qqnxintegration.cpp b/src/plugins/platforms/qnx/qqnxintegration.cpp
index 43f474a158..40e29981ce 100644
--- a/src/plugins/platforms/qnx/qqnxintegration.cpp
+++ b/src/plugins/platforms/qnx/qqnxintegration.cpp
@@ -46,6 +46,7 @@
#include "qqnxnavigatoreventhandler.h"
#include "qqnxrasterbackingstore.h"
#include "qqnxscreen.h"
+#include "qqnxscreeneventhandler.h"
#include "qqnxwindow.h"
#include "qqnxvirtualkeyboard.h"
#include "qqnxclipboard.h"
@@ -85,6 +86,7 @@ QQnxIntegration::QQnxIntegration()
, m_paintUsingOpenGL(false)
, m_eventDispatcher(createUnixEventDispatcher())
, m_services(0)
+ , m_screenEventHandler(new QQnxScreenEventHandler())
#ifndef QT_NO_CLIPBOARD
, m_clipboard(0)
#endif
@@ -106,7 +108,7 @@ QQnxIntegration::QQnxIntegration()
QQnxGLContext::initialize();
// Create/start event thread
- m_eventThread = new QQnxEventThread(m_screenContext);
+ m_eventThread = new QQnxEventThread(m_screenContext, m_screenEventHandler);
m_eventThread->start();
// Create/start navigator event handler
@@ -145,6 +147,8 @@ QQnxIntegration::~QQnxIntegration()
qDebug() << "QQnx: platform plugin shutdown begin";
#endif
+ delete m_screenEventHandler;
+
// Destroy input context
delete m_inputContext;
@@ -342,6 +346,11 @@ void QQnxIntegration::createDisplays()
QQnxScreen *screen = new QQnxScreen(m_screenContext, displays[i], i==0);
m_screens.append(screen);
screenAdded(screen);
+
+ QObject::connect(m_screenEventHandler, SIGNAL(newWindowCreated(void *)),
+ screen, SLOT(newWindowCreated(void *)));
+ QObject::connect(m_screenEventHandler, SIGNAL(windowClosed(void *)),
+ screen, SLOT(windowClosed(void *)));
}
}