summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/kernel/qwidget.cpp')
-rw-r--r--src/gui/kernel/qwidget.cpp17
1 files changed, 7 insertions, 10 deletions
diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp
index 7714acb..cd1c9f0 100644
--- a/src/gui/kernel/qwidget.cpp
+++ b/src/gui/kernel/qwidget.cpp
@@ -7051,16 +7051,13 @@ bool QWidget::restoreGeometry(const QByteArray &geometry)
restoredNormalGeometry.moveTop(qMax(restoredNormalGeometry.top(), availableGeometry.top() + frameHeight));
if (maximized || fullScreen) {
- // Set the geomerty before setting the maximized/fullscreen
- // window state to make sure the window is maximized to the
- // correct screen. Clear the window state before setting the
- // geometry to prevent a bug where the window is restored to
- // an inconsitent state on Windows.
- if (desktop->screenNumber(restoredNormalGeometry.center()) != desktop->screenNumber(this)) {
- setWindowState(Qt::WindowNoState);
- setGeometry(restoredNormalGeometry);
- }
-
+ // set geomerty before setting the window state to make
+ // sure the window is maximized to the right screen.
+ // Skip on windows: the window is restored into a broken
+ // half-maximized state.
+#ifndef Q_WS_WIN
+ setGeometry(restoredNormalGeometry);
+#endif
Qt::WindowStates ws = windowState();
if (maximized)
ws |= Qt::WindowMaximized;