diff --git a/app/SysTray-X/SysTray-X-app/windowctrl-win.cpp b/app/SysTray-X/SysTray-X-app/windowctrl-win.cpp index 87b1d20..0a639f7 100644 --- a/app/SysTray-X/SysTray-X-app/windowctrl-win.cpp +++ b/app/SysTray-X/SysTray-X-app/windowctrl-win.cpp @@ -36,6 +36,7 @@ WindowCtrlWin::WindowCtrlWin( QObject *parent) : QObject( parent ) * Initialize */ m_tb_windows = QList< quint64 >(); + m_tb_windows_hidden = QList< quint64 >(); m_tb_window_states = QMap< quint64, Preferences::WindowState >(); /* @@ -403,9 +404,15 @@ void WindowCtrlWin::minimizeWindowToTaskbar( quint64 window ) */ void WindowCtrlWin::minimizeWindowToTray( quint64 window ) { + ShowWindow( (HWND)window, SW_HIDE ); + + m_tb_windows_hidden.append( window ); + +/* ShowWindow( (HWND)window, SW_MINIMIZE ); hideWindow( (HWND)window ); +*/ } @@ -431,6 +438,25 @@ void WindowCtrlWin::normalizeWindow( quint64 window ) } +/* + * Normalize a window + */ +void WindowCtrlWin::normalizeWindowsHidden() +{ + for( int i ; i < m_tb_windows_hidden.length ; ++i ) + { + ShowWindow( (HWND)m_tb_windows_hidden.hidden.at( i ), SW_SHOW); + } + + if( m_tb_windows_hidden.length > 0 ) + { + SetForegroundWindow( (HWND)m_tb_windows_hidden.at( 0 ) ); + } + + m_tb_windows_hidden.clear(); +} + + /* * Hide a window */ diff --git a/app/SysTray-X/SysTray-X-app/windowctrl-win.h b/app/SysTray-X/SysTray-X-app/windowctrl-win.h index 7e31ff8..9462bae 100644 --- a/app/SysTray-X/SysTray-X-app/windowctrl-win.h +++ b/app/SysTray-X/SysTray-X-app/windowctrl-win.h @@ -325,6 +325,11 @@ class WindowCtrlWin : public QObject */ QList< quint64 > m_tb_windows; + /** + * @brief m_tb_windows_hidden. The Thunderbird hidden windows. + */ + QList< quint64 > m_tb_windows_hidden; + /** * @brief m_tb_window_states. The Thunderbird window states. */ diff --git a/app/SysTray-X/SysTray-X-app/windowctrl.cpp b/app/SysTray-X/SysTray-X-app/windowctrl.cpp index cb98dd3..a6f461d 100644 --- a/app/SysTray-X/SysTray-X-app/windowctrl.cpp +++ b/app/SysTray-X/SysTray-X-app/windowctrl.cpp @@ -381,6 +381,12 @@ void WindowCtrl::slotShowHide() } } +#ifdef Q_OS_WIN + + normalizeWindowsHidden(); + +#endif + /* * Mark action */