summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/qnx/qqnxintegration.cpp
diff options
context:
space:
mode:
authorThomas McGuire <thomas.mcguire@kdab.com>2012-03-29 16:13:52 +0200
committerQt by Nokia <qt-info@nokia.com>2012-03-30 21:51:14 +0200
commit4efd61c3cf3d25db1c60bf5c842837c5b24a05fa (patch)
treed9c45557d91bcda9198d28739da3931c489d7af8 /src/plugins/platforms/qnx/qqnxintegration.cpp
parentb5f343b3677a7c7f09d91d7d60f310717325e840 (diff)
Add support for screen overlays / foreign windows
We're not the only one creating native windows. When using the multimedia API, the multimedia library creates a video window for video display. Here we need to deal with giving this video window overlay a proper z-order, otherwise it will never get visible. Change-Id: Ibff0382ebee5cda87408b91c8181a4104fc4a1a3 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
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 *)));
}
}