diff options
author | Andreas Holzammer <andreas.holzammer@kdab.com> | 2012-08-02 09:57:15 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-08-03 03:02:27 +0200 |
commit | 1e9d9e20442ff9a68bbb038c8d9b9132ccf389e9 (patch) | |
tree | c4ee6baf0458c1f8105a147d87e498113312c636 /src/plugins | |
parent | 3d0af143ca51af0a3cbd81a794e6726992f9a86b (diff) |
Fix FullScreen for Windows CE
For Windows CE the taskbar needs to be hidden
manually.
Change-Id: Ife69a2a91457ba0c162e4e1be88f87ad22c61190
Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/platforms/windows/qwindowswindow.cpp | 23 | ||||
-rw-r--r-- | src/plugins/platforms/windows/qwindowswindow.h | 3 |
2 files changed, 26 insertions, 0 deletions
diff --git a/src/plugins/platforms/windows/qwindowswindow.cpp b/src/plugins/platforms/windows/qwindowswindow.cpp index 9c40336069..1c76ff4ef8 100644 --- a/src/plugins/platforms/windows/qwindowswindow.cpp +++ b/src/plugins/platforms/windows/qwindowswindow.cpp @@ -703,6 +703,9 @@ QWindowsWindow::QWindowsWindow(QWindow *aWindow, const WindowData &data) : #ifdef QT_OPENGL_ES_2 , m_eglSurface(0) #endif +#ifdef Q_OS_WINCE + , m_previouslyHidden(false) +#endif { if (aWindow->surfaceType() == QWindow::OpenGLSurface) setFlag(OpenGLSurface); @@ -745,6 +748,14 @@ void QWindowsWindow::destroyWindow() m_eglSurface = 0; } #endif +#ifdef Q_OS_WINCE + if ((m_windowState & Qt::WindowFullScreen) && !m_previouslyHidden) { + HWND handle = FindWindow(L"HHTaskBar", L""); + if (handle) { + ShowWindow(handle, SW_SHOW); + } + } +#endif if (m_data.hwnd != GetDesktopWindow()) DestroyWindow(m_data.hwnd); m_data.hwnd = 0; @@ -1210,6 +1221,18 @@ void QWindowsWindow::setWindowState_sys(Qt::WindowState newState) } if ((oldState == Qt::WindowFullScreen) != (newState == Qt::WindowFullScreen)) { +#ifdef Q_OS_WINCE + HWND handle = FindWindow(L"HHTaskBar", L""); + if (handle) { + if (newState == Qt::WindowFullScreen) { + BOOL hidden = ShowWindow(handle, SW_HIDE); + if (!hidden) + m_previouslyHidden = true; + } else if (!m_previouslyHidden){ + ShowWindow(handle, SW_SHOW); + } + } +#endif if (newState == Qt::WindowFullScreen) { #ifndef Q_FLATTEN_EXPOSE UINT newStyle = WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_POPUP; diff --git a/src/plugins/platforms/windows/qwindowswindow.h b/src/plugins/platforms/windows/qwindowswindow.h index b45b00b434..8e6ff9f891 100644 --- a/src/plugins/platforms/windows/qwindowswindow.h +++ b/src/plugins/platforms/windows/qwindowswindow.h @@ -270,6 +270,9 @@ private: EGLSurface m_eglSurface; QSharedPointer<QWindowsEGLStaticContext> m_staticEglContext; #endif +#ifdef Q_OS_WINCE + bool m_previouslyHidden; +#endif }; // Conveniences for window frames. |