summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/platforms/windows/qwindowswindow.cpp34
-rw-r--r--src/plugins/platforms/windows/qwindowswindow.h3
2 files changed, 9 insertions, 28 deletions
diff --git a/src/plugins/platforms/windows/qwindowswindow.cpp b/src/plugins/platforms/windows/qwindowswindow.cpp
index 184669d0a5..bc886f077f 100644
--- a/src/plugins/platforms/windows/qwindowswindow.cpp
+++ b/src/plugins/platforms/windows/qwindowswindow.cpp
@@ -981,8 +981,9 @@ void QWindowsWindow::handleResized(int wParam)
handleGeometryChange();
break;
case SIZE_RESTORED:
- if (m_windowState != Qt::WindowNoState)
- handleWindowStateChange(isFullScreen_sys() ? Qt::WindowFullScreen : Qt::WindowNoState);
+ bool fullScreen = isFullScreen_sys();
+ if ((m_windowState != Qt::WindowNoState) || fullScreen)
+ handleWindowStateChange(fullScreen ? Qt::WindowFullScreen : Qt::WindowNoState);
handleGeometryChange();
break;
}
@@ -1166,25 +1167,6 @@ Qt::WindowState QWindowsWindow::setWindowState(Qt::WindowState state)
return state;
}
-Qt::WindowState QWindowsWindow::windowState_sys() const
-{
- if (IsIconic(m_data.hwnd))
- return Qt::WindowMinimized;
- if (IsZoomed(m_data.hwnd))
- return Qt::WindowMaximized;
- if (isFullScreen_sys())
- return Qt::WindowFullScreen;
- return Qt::WindowNoState;
-}
-
-Qt::WindowStates QWindowsWindow::windowStates_sys() const
-{
- Qt::WindowStates result = windowState_sys();
- if (GetActiveWindow() == m_data.hwnd)
- result |= Qt::WindowActive;
- return result;
-}
-
bool QWindowsWindow::isFullScreen_sys() const
{
return geometry_sys() == window()->screen()->geometry();
@@ -1203,11 +1185,11 @@ bool QWindowsWindow::isFullScreen_sys() const
void QWindowsWindow::setWindowState_sys(Qt::WindowState newState)
{
- const Qt::WindowStates oldStates = windowStates_sys();
+ const Qt::WindowStates oldStates = m_windowState;
// Maintain the active flag as the platform window API does not
// use it.
Qt::WindowStates newStates = newState;
- if (oldStates & Qt::WindowActive)
+ if (isActive())
newStates |= Qt::WindowActive;
if (oldStates == newStates)
return;
@@ -1239,19 +1221,21 @@ void QWindowsWindow::setWindowState_sys(Qt::WindowState newState)
// Save geometry and style to be restored when fullscreen
// is turned off again, since on Windows, it is not a real
// Window state but emulated by changing geometry and style.
-#ifndef Q_OS_WINCE // there is no style under wince
if (!m_savedStyle) {
m_savedStyle = style();
+#ifndef Q_OS_WINCE
if (oldStates & Qt::WindowMinimized) {
WINDOWPLACEMENT wp;
wp.length = sizeof(WINDOWPLACEMENT);
if (GetWindowPlacement(m_data.hwnd, &wp))
m_savedFrameGeometry = qrectFromRECT(wp.rcNormalPosition);
} else {
+#endif
m_savedFrameGeometry = frameGeometry_sys();
+#ifndef Q_OS_WINCE
}
- }
#endif
+ }
if (m_savedStyle & WS_SYSMENU)
newStyle |= WS_SYSMENU;
if (visible)
diff --git a/src/plugins/platforms/windows/qwindowswindow.h b/src/plugins/platforms/windows/qwindowswindow.h
index ff99d5c1ae..176a02bc36 100644
--- a/src/plugins/platforms/windows/qwindowswindow.h
+++ b/src/plugins/platforms/windows/qwindowswindow.h
@@ -182,9 +182,6 @@ public:
void setFrameStrutEventsEnabled(bool enabled);
bool frameStrutEventsEnabled() const { return testFlag(FrameStrutEventsEnabled); }
- Qt::WindowState windowState_sys() const;
- Qt::WindowStates windowStates_sys() const;
-
#ifdef QT_OPENGL_ES_2
EGLSurface eglSurfaceHandle() const { return m_eglSurface;}
EGLSurface ensureEglSurfaceHandle(const QWindowsEGLStaticContextPtr &staticContext, EGLConfig config);