diff options
author | Thomas McGuire <thomas.mcguire@kdab.com> | 2012-03-29 16:13:52 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-03-30 21:51:14 +0200 |
commit | 4efd61c3cf3d25db1c60bf5c842837c5b24a05fa (patch) | |
tree | d9c45557d91bcda9198d28739da3931c489d7af8 /src/plugins/platforms/qnx/qqnxintegration.cpp | |
parent | b5f343b3677a7c7f09d91d7d60f310717325e840 (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.cpp | 11 |
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 *))); } } |