From 379238496d0bf339a717a311e91949deb2e45485 Mon Sep 17 00:00:00 2001 From: Eduard Veleba Date: Wed, 19 Mar 2014 13:53:57 +0100 Subject: Workaround for misbehaving [UIScreen screens] in iOS 7.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On iOS 7.1 [UIScreen screens] sometimes returns empty NSArray which is against documentation and causes immediate application crash. This workaround uses [UIScreen mainScreen] in case [UIScreen screens] returns empty NSArray. Task-number: QTBUG-37601 Change-Id: I9b341b9ca788b5fc81804489d2e0a3af84207168 Reviewed-by: Tor Arne Vestbø --- src/plugins/platforms/ios/qiosscreen.mm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/platforms/ios/qiosscreen.mm b/src/plugins/platforms/ios/qiosscreen.mm index 96410952f9..5331d05ae9 100644 --- a/src/plugins/platforms/ios/qiosscreen.mm +++ b/src/plugins/platforms/ios/qiosscreen.mm @@ -120,7 +120,9 @@ static QString deviceModelIdentifier() QIOSScreen::QIOSScreen(unsigned int screenIndex) : QPlatformScreen() - , m_uiScreen([[UIScreen screens] objectAtIndex:qMin(NSUInteger(screenIndex), [[UIScreen screens] count] - 1)]) + , m_uiScreen([[UIScreen screens] count] > screenIndex + ? [[UIScreen screens] objectAtIndex:screenIndex] + : [UIScreen mainScreen]) , m_orientationListener(0) { QString deviceIdentifier = deviceModelIdentifier(); -- cgit v1.2.3