diff options
Diffstat (limited to 'src/gui/kernel/qwidget.cpp')
-rw-r--r-- | src/gui/kernel/qwidget.cpp | 17 |
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; |