summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/ios/qioswindow.mm
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/ios/qioswindow.mm')
-rw-r--r--src/plugins/platforms/ios/qioswindow.mm16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/plugins/platforms/ios/qioswindow.mm b/src/plugins/platforms/ios/qioswindow.mm
index 66552fae4f..0dd810bdf6 100644
--- a/src/plugins/platforms/ios/qioswindow.mm
+++ b/src/plugins/platforms/ios/qioswindow.mm
@@ -581,6 +581,14 @@ void QIOSWindow::applyGeometry(const QRect &rect)
void QIOSWindow::setWindowState(Qt::WindowState state)
{
+ // Update the QWindow representation straight away, so that
+ // we can update the statusbar visibility based on the new
+ // state before applying geometry changes.
+ qt_window_private(window())->windowState = state;
+
+ if (window()->isTopLevel() && window()->isVisible() && window()->isActive())
+ static_cast<QIOSScreen *>(screen())->updateStatusBarVisibility();
+
switch (state) {
case Qt::WindowNoState:
applyGeometry(m_normalGeometry);
@@ -599,14 +607,6 @@ void QIOSWindow::setWindowState(Qt::WindowState state)
default:
Q_UNREACHABLE();
}
-
- if (window()->isTopLevel() && window()->isVisible() && window()->isActive()) {
- // The window state of the QWindow is not updated until after
- // we return from this method, so we have to defer any updates
- // of the statusbar that depend on the current window state.
- QMetaObject::invokeMethod(static_cast<QIOSScreen *>(screen()),
- "updateStatusBarVisibility", Qt::QueuedConnection);
- }
}
void QIOSWindow::setParent(const QPlatformWindow *parentWindow)