summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorAndreas Holzammer <andreas.holzammer@kdab.com>2012-08-02 09:57:15 +0200
committerQt by Nokia <qt-info@nokia.com>2012-08-03 03:02:27 +0200
commit1e9d9e20442ff9a68bbb038c8d9b9132ccf389e9 (patch)
treec4ee6baf0458c1f8105a147d87e498113312c636 /src/plugins
parent3d0af143ca51af0a3cbd81a794e6726992f9a86b (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.cpp23
-rw-r--r--src/plugins/platforms/windows/qwindowswindow.h3
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.