summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@digia.com>2014-03-26 16:34:02 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-03-27 17:51:21 +0100
commit225ada44ebb2f2ddc0efb29b1a93c09661653837 (patch)
treeaaf5ab871420523076e0c817a34735f52232ec2c /src/plugins/platforms
parent9bb634a6176c639bd6b52d58151e9927c30919d0 (diff)
Windows: Suppress window state change to normal when going from maximized to fullscreen.
Task-number: QTBUG-35166 Change-Id: Idcf2d2a5fd0dc59f35a287c106ca772d801550c0 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Diffstat (limited to 'src/plugins/platforms')
-rw-r--r--src/plugins/platforms/windows/qwindowswindow.cpp10
-rw-r--r--src/plugins/platforms/windows/qwindowswindow.h3
2 files changed, 9 insertions, 4 deletions
diff --git a/src/plugins/platforms/windows/qwindowswindow.cpp b/src/plugins/platforms/windows/qwindowswindow.cpp
index 3cf9481c17..ee9bf9936c 100644
--- a/src/plugins/platforms/windows/qwindowswindow.cpp
+++ b/src/plugins/platforms/windows/qwindowswindow.cpp
@@ -1359,9 +1359,10 @@ void QWindowsWindow::handleResized(int wParam)
handleGeometryChange();
break;
case SIZE_RESTORED:
- bool fullScreen = isFullScreen_sys();
- if ((m_windowState != Qt::WindowNoState) || fullScreen)
- handleWindowStateChange(fullScreen ? Qt::WindowFullScreen : Qt::WindowNoState);
+ if (isFullScreen_sys())
+ handleWindowStateChange(Qt::WindowFullScreen);
+ else if (m_windowState != Qt::WindowNoState && !testFlag(MaximizeToFullScreen))
+ handleWindowStateChange(Qt::WindowNoState);
handleGeometryChange();
break;
}
@@ -1617,8 +1618,11 @@ void QWindowsWindow::setWindowState_sys(Qt::WindowState newState)
if ((oldState == Qt::WindowMaximized) != (newState == Qt::WindowMaximized)) {
if (visible && !(newState == Qt::WindowMinimized)) {
setFlag(WithinMaximize);
+ if (newState == Qt::WindowFullScreen)
+ setFlag(MaximizeToFullScreen);
ShowWindow(m_data.hwnd, (newState == Qt::WindowMaximized) ? SW_MAXIMIZE : SW_SHOWNOACTIVATE);
clearFlag(WithinMaximize);
+ clearFlag(MaximizeToFullScreen);
}
}
diff --git a/src/plugins/platforms/windows/qwindowswindow.h b/src/plugins/platforms/windows/qwindowswindow.h
index ba0f22bb0a..cb437b76d0 100644
--- a/src/plugins/platforms/windows/qwindowswindow.h
+++ b/src/plugins/platforms/windows/qwindowswindow.h
@@ -153,7 +153,8 @@ public:
AlertState = 0x8000,
Exposed = 0x10000,
WithinCreate = 0x20000,
- WithinMaximize = 0x40000
+ WithinMaximize = 0x40000,
+ MaximizeToFullScreen = 0x80000
};
QWindowsWindow(QWindow *window, const QWindowsWindowData &data);