summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/ios
diff options
context:
space:
mode:
authorTor Arne Vestbø <tor.arne.vestbo@digia.com>2013-11-28 13:09:44 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-12-04 14:50:25 +0100
commit996d78d4c94a0116eecec160caf605ea3629f36c (patch)
tree475af26f3d4bbc0f27d0cdd811b483f28be6d6eb /src/plugins/platforms/ios
parent04ccc2b255633deb6dd1bfd8ff56efdbff58a543 (diff)
iOS: Handle statusbar changes to child windows
Going through the platform window failed when the parent wasn't created yet. We can still get the window state of an yet-to-be-created top level window. Change-Id: Iaa61ddc50df037ac0bd2fd0884884c2bfce1dd9a Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Diffstat (limited to 'src/plugins/platforms/ios')
-rw-r--r--src/plugins/platforms/ios/qiosviewcontroller.mm6
-rw-r--r--src/plugins/platforms/ios/qioswindow.h2
-rw-r--r--src/plugins/platforms/ios/qioswindow.mm4
3 files changed, 6 insertions, 6 deletions
diff --git a/src/plugins/platforms/ios/qiosviewcontroller.mm b/src/plugins/platforms/ios/qiosviewcontroller.mm
index 2e7e44d32c..9a9fba5a8e 100644
--- a/src/plugins/platforms/ios/qiosviewcontroller.mm
+++ b/src/plugins/platforms/ios/qiosviewcontroller.mm
@@ -102,11 +102,11 @@
- (BOOL)prefersStatusBarHidden
{
QWindow *focusWindow = QGuiApplication::focusWindow();
- if (!focusWindow)
+ if (!focusWindow || !focusWindow->handle())
return [UIApplication sharedApplication].statusBarHidden;
- QIOSWindow *topLevel = static_cast<QIOSWindow *>(focusWindow->handle())->topLevelWindow();
- return topLevel->window()->windowState() == Qt::WindowFullScreen;
+ QWindow *topLevel = static_cast<QIOSWindow *>(focusWindow->handle())->topLevelWindow();
+ return topLevel->windowState() == Qt::WindowFullScreen;
}
@end
diff --git a/src/plugins/platforms/ios/qioswindow.h b/src/plugins/platforms/ios/qioswindow.h
index a5e122bda1..01a82866dc 100644
--- a/src/plugins/platforms/ios/qioswindow.h
+++ b/src/plugins/platforms/ios/qioswindow.h
@@ -85,7 +85,7 @@ public:
WId winId() const { return WId(m_view); };
- QIOSWindow *topLevelWindow() const;
+ QWindow *topLevelWindow() const;
private:
void applyGeometry(const QRect &rect);
diff --git a/src/plugins/platforms/ios/qioswindow.mm b/src/plugins/platforms/ios/qioswindow.mm
index 5374bc530d..d62d5420b7 100644
--- a/src/plugins/platforms/ios/qioswindow.mm
+++ b/src/plugins/platforms/ios/qioswindow.mm
@@ -622,7 +622,7 @@ void QIOSWindow::setParent(const QPlatformWindow *parentWindow)
}
}
-QIOSWindow *QIOSWindow::topLevelWindow() const
+QWindow *QIOSWindow::topLevelWindow() const
{
QWindow *window = this->window();
while (window) {
@@ -636,7 +636,7 @@ QIOSWindow *QIOSWindow::topLevelWindow() const
window = parent;
}
- return static_cast<QIOSWindow *>(window->handle());
+ return window;
}
void QIOSWindow::requestActivateWindow()