summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gui/kernel/qplatformintegration.cpp1
-rw-r--r--src/gui/kernel/qplatformscreen_p.h2
-rw-r--r--src/plugins/platforms/ios/qiosviewcontroller.mm3
3 files changed, 4 insertions, 2 deletions
diff --git a/src/gui/kernel/qplatformintegration.cpp b/src/gui/kernel/qplatformintegration.cpp
index 98755c3a5e..5eedcabd24 100644
--- a/src/gui/kernel/qplatformintegration.cpp
+++ b/src/gui/kernel/qplatformintegration.cpp
@@ -461,7 +461,6 @@ void QPlatformIntegration::destroyScreen(QPlatformScreen *screen)
{
QGuiApplicationPrivate::screen_list.removeOne(screen->d_func()->screen);
delete screen->d_func()->screen;
- screen->d_func()->screen = Q_NULLPTR;
delete screen;
}
diff --git a/src/gui/kernel/qplatformscreen_p.h b/src/gui/kernel/qplatformscreen_p.h
index 42a5503461..fb80bfe662 100644
--- a/src/gui/kernel/qplatformscreen_p.h
+++ b/src/gui/kernel/qplatformscreen_p.h
@@ -52,7 +52,7 @@ class QScreen;
class QPlatformScreenPrivate
{
public:
- QScreen *screen;
+ QPointer<QScreen> screen;
};
QT_END_NAMESPACE
diff --git a/src/plugins/platforms/ios/qiosviewcontroller.mm b/src/plugins/platforms/ios/qiosviewcontroller.mm
index 84d6628a8a..365de974aa 100644
--- a/src/plugins/platforms/ios/qiosviewcontroller.mm
+++ b/src/plugins/platforms/ios/qiosviewcontroller.mm
@@ -337,6 +337,9 @@
if (!isQtApplication())
return;
+ if (!m_screen->screen())
+ return;
+
// For now we only care about the main screen, as both the statusbar
// visibility and orientation is only appropriate for the main screen.
if (m_screen->uiScreen() != [UIScreen mainScreen])