summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/qnx
diff options
context:
space:
mode:
authorFabian Bumberger <fbumberger@rim.com>2013-06-27 05:30:49 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-07-02 01:14:04 +0200
commit0730e7b023529703e049cb0ec3aa999341b22814 (patch)
tree39d3c16af2075ac273f3ca39d671e8dabec99f9d /src/plugins/platforms/qnx
parent18fe18317a80a5ba5df040721397f17d8a247d4c (diff)
QNX: Fix invalid screen size when attaching a second display
When attaching a display several SCREEN_EVENT_DISPLAY events might be received. SCREEN_PROPERTY_SIZE might not be populated in the first event we get, so we wait. Change-Id: I357108bb347eb92cd773d293bfe7cd462fb7e527 Reviewed-by: Bernd Weimer <bweimer@blackberry.com> Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Fabian Bumberger <fbumberger@rim.com> Reviewed-by: Petr NejedlĂ˝ <pnejedly@blackberry.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Diffstat (limited to 'src/plugins/platforms/qnx')
-rw-r--r--src/plugins/platforms/qnx/qqnxscreeneventhandler.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/plugins/platforms/qnx/qqnxscreeneventhandler.cpp b/src/plugins/platforms/qnx/qqnxscreeneventhandler.cpp
index c2d0e3e41c..c869d29c99 100644
--- a/src/plugins/platforms/qnx/qqnxscreeneventhandler.cpp
+++ b/src/plugins/platforms/qnx/qqnxscreeneventhandler.cpp
@@ -469,8 +469,14 @@ void QQnxScreenEventHandler::handleDisplayEvent(screen_event_t event)
qScreenEventDebug() << Q_FUNC_INFO << "display attachment is now:" << isAttached;
QQnxScreen *screen = m_qnxIntegration->screenForNative(nativeDisplay);
+
if (!screen) {
if (isAttached) {
+ int val[2];
+ screen_get_display_property_iv(nativeDisplay, SCREEN_PROPERTY_SIZE, val);
+ if (val[0] == 0 && val[1] == 0) //If screen size is invalid, wait for the next event
+ return;
+
qScreenEventDebug() << "creating new QQnxScreen for newly attached display";
m_qnxIntegration->createDisplay(nativeDisplay, false /* not primary, we assume */);
}