Don't assume windows and GL contexts are created on the primary screen
authorThomas McGuire <thomas.mcguire@kdab.com>
Thu, 29 Mar 2012 13:20:35 +0000 (15:20 +0200)
committerQt by Nokia <qt-info@nokia.com>
Fri, 30 Mar 2012 19:51:14 +0000 (21:51 +0200)
Change-Id: Ib4f1c377bf93b1041b5f5e3fc56c0e01e35aeb38
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
src/plugins/platforms/qnx/qqnxglcontext.cpp
src/plugins/platforms/qnx/qqnxwindow.cpp

index d620feb..882b717 100644 (file)
@@ -48,6 +48,7 @@
 
 #include <QtCore/QDebug>
 #include <QtGui/QOpenGLContext>
+#include <QtGui/QScreen>
 
 QT_BEGIN_NAMESPACE
 
@@ -103,7 +104,7 @@ QQnxGLContext::QQnxGLContext(QOpenGLContext *glContext)
     // Check if all channels are don't care
     if (alphaSize == -1 && redSize == -1 && greenSize == -1 && blueSize == -1) {
         // Set colour channels based on depth of window's screen
-        QQnxScreen *screen = static_cast<QQnxScreen*>(QQnxScreen::screens().first());
+        QQnxScreen *screen = static_cast<QQnxScreen*>(glContext->screen()->handle());
         int depth = screen->depth();
         if (depth == 32) {
             // SCREEN_FORMAT_RGBA8888
index cf45d06..e0fff0c 100644 (file)
@@ -121,8 +121,7 @@ QQnxWindow::QQnxWindow(QWindow *window, screen_context_t context)
         qFatal("QQnxWindow: failed to set window swap interval, errno=%d", errno);
     }
 
-    // Assign the window to the primary display (this is the default specified by screen).
-    setScreen(QQnxScreen::primaryDisplay());
+    setScreen(static_cast<QQnxScreen *>(window->screen()->handle()));
 
     // Add the window to the root of the hierarchy
     QQnxScreen::addWindow(this);