diff options
author | Joerg Bornemann <joerg.bornemann@nokia.com> | 2009-10-01 12:12:30 (GMT) |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@nokia.com> | 2009-10-01 12:14:55 (GMT) |
commit | 9a2fe76443e814c221f308f8fe37ef6fcccbcf74 (patch) | |
tree | 8a8d1576bb07252ceba54508632d78a3e7e707c2 /src/gui/kernel/qwidget_wince.cpp | |
parent | b718b80cd94063b491ba7695ccd2902c2819141b (diff) | |
download | Qt-9a2fe76443e814c221f308f8fe37ef6fcccbcf74.zip Qt-9a2fe76443e814c221f308f8fe37ef6fcccbcf74.tar.gz Qt-9a2fe76443e814c221f308f8fe37ef6fcccbcf74.tar.bz2 |
fix minimizing for Windows CE and Windows mobile
Task-number: QT-2243
Reviewed-by: thartman
Diffstat (limited to 'src/gui/kernel/qwidget_wince.cpp')
-rw-r--r-- | src/gui/kernel/qwidget_wince.cpp | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/src/gui/kernel/qwidget_wince.cpp b/src/gui/kernel/qwidget_wince.cpp index 32e8e7f..c0664f4 100644 --- a/src/gui/kernel/qwidget_wince.cpp +++ b/src/gui/kernel/qwidget_wince.cpp @@ -416,6 +416,10 @@ void QWidgetPrivate::show_sys() { SetWindowLong(q->internalWinId(), GWL_STYLE, style | WS_MAXIMIZEBOX); } } else +#else + // Imitate minimizing on Windows mobile by hiding the widget. + if (q->isMinimized()) + sm = SW_HIDE; #endif if (q->isHidden()) { sm = SW_HIDE; @@ -428,8 +432,7 @@ void QWidgetPrivate::show_sys() { sm = SW_SHOWNOACTIVATE; } - if (!(data.window_state & Qt::WindowMinimized)) - ShowWindow(q->internalWinId(), sm); + ShowWindow(q->internalWinId(), sm); if (q->isMaximized() && q->isWindow()) qt_wince_maximize(q); @@ -438,7 +441,7 @@ void QWidgetPrivate::show_sys() { if (!qt_wince_is_mobile() && q->isFullScreen()) { HWND handle = FindWindow(L"HHTaskBar", L""); if (handle) { - ShowWindow(handle, 0); + ShowWindow(handle, SW_HIDE); EnableWindow(handle, false); } } @@ -468,17 +471,12 @@ void QWidget::setWindowState(Qt::WindowStates newstate) return; int max = SW_SHOWNORMAL; - int min = SW_SHOWNOACTIVATE; - int normal = SW_SHOWNOACTIVATE; if ((oldstate & Qt::WindowMinimized) && !(newstate & Qt::WindowMinimized)) newstate |= Qt::WindowActive; - if (newstate & Qt::WindowActive) { - max = SW_SHOWNORMAL; - min = SW_SHOWNORMAL; + if (newstate & Qt::WindowActive) normal = SW_SHOWNORMAL; - } if (isWindow()) { createWinId(); Q_ASSERT(testAttribute(Qt::WA_WState_Created)); @@ -556,13 +554,11 @@ void QWidget::setWindowState(Qt::WindowStates newstate) } } if ((oldstate & Qt::WindowMinimized) != (newstate & Qt::WindowMinimized)) { - if (isVisible()) { - ShowWindow(internalWinId(), (newstate & Qt::WindowMinimized) ? min : - (newstate & Qt::WindowMaximized) ? max : normal); - if (newstate & Qt::WindowMaximized) - qt_wince_maximize(this); if (newstate & Qt::WindowMinimized) qt_wince_minimize(internalWinId()); + else if (newstate & Qt::WindowMaximized) { + ShowWindow(internalWinId(), max); + qt_wince_maximize(this); } } if ((newstate & Qt::WindowMaximized) && !(newstate & Qt::WindowFullScreen)) { @@ -588,7 +584,7 @@ void QWidgetPrivate::deleteSysExtra() if (!qt_wince_is_mobile() && q->isFullScreen()) { HWND handle = FindWindow(L"HHTaskBar", L""); if (handle) { - ShowWindow(handle, 1); + ShowWindow(handle, SW_SHOWNORMAL); EnableWindow(handle, true); } } |