diff options
author | Fabian Bumberger <fbumberger@rim.com> | 2013-06-27 05:30:49 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-07-02 01:14:04 +0200 |
commit | 0730e7b023529703e049cb0ec3aa999341b22814 (patch) | |
tree | 39d3c16af2075ac273f3ca39d671e8dabec99f9d /src/plugins/platforms/qnx | |
parent | 18fe18317a80a5ba5df040721397f17d8a247d4c (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.cpp | 6 |
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 */); } |