mirror of
https://github.com/Ximi1970/systray-x.git
synced 2026-05-07 17:07:07 +02:00
Add taskbar hide
This commit is contained in:
@@ -142,7 +142,7 @@ win32: {
|
||||
} else {
|
||||
JSON_EXE_PATH = $$system(powershell -Command "('$$shell_path($${OUT_PWD}/release/$${TARGET}.exe)').replace('\\','\\\\')")
|
||||
|
||||
QMAKE_POST_LINK = $$[QT_INSTALL_BINS]\windeployqt.exe "$$shell_path($${OUT_PWD}/release/$${TARGET}.exe)"
|
||||
QMAKE_POST_LINK = $$[QT_INSTALL_BINS]\windeployqt.exe "$$shell_path($${OUT_PWD}/release/$${TARGET}.exe)" &
|
||||
QMAKE_POST_LINK += powershell -Command \"(Get-Content $$shell_path($${_PRO_FILE_PWD_}/../config/win32/SysTray_X.json.template) ).replace(\'SYSTRAY_X_PATH\',\'$$JSON_EXE_PATH\') | Set-Content $$shell_path($${_PRO_FILE_PWD_}/../config/win32/SysTray_X.json)\" &
|
||||
}
|
||||
|
||||
|
||||
@@ -77,9 +77,14 @@ QList< quint64 > WindowCtrlWin::getWinIds()
|
||||
/*
|
||||
* Minimize a window
|
||||
*/
|
||||
void WindowCtrlWin::minimizeWindow( quint64 window )
|
||||
void WindowCtrlWin::minimizeWindow( quint64 window, bool hide )
|
||||
{
|
||||
ShowWindow( (HWND)window, SW_MINIMIZE );
|
||||
|
||||
if( hide )
|
||||
{
|
||||
hideWindow( (HWND)window );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -89,14 +94,24 @@ void WindowCtrlWin::minimizeWindow( quint64 window )
|
||||
void WindowCtrlWin::normalizeWindow( quint64 window )
|
||||
{
|
||||
ShowWindow( (HWND)window, SW_RESTORE );
|
||||
SetForegroundWindow( (HWND)window );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Hide a window
|
||||
*/
|
||||
void WindowCtrlWin::hideWindow( quint64 window, bool state )
|
||||
void WindowCtrlWin::hideWindow( HWND hwnd )
|
||||
{
|
||||
emit signalConsole( "Hide" );
|
||||
|
||||
long style = GetWindowLong( hwnd, GWL_STYLE );
|
||||
|
||||
style &= ~(WS_VISIBLE);
|
||||
style |= WS_EX_TOOLWINDOW;
|
||||
style &= ~(WS_EX_APPWINDOW);
|
||||
|
||||
SetWindowLong( hwnd, GWL_STYLE, style );
|
||||
}
|
||||
|
||||
#endif // Q_OS_WIN
|
||||
|
||||
@@ -57,8 +57,9 @@ class WindowCtrlWin : public QObject
|
||||
* @brief minimizeWindow. Minimize window.
|
||||
*
|
||||
* @param window The window.
|
||||
* @param hide Hide from taskbar
|
||||
*/
|
||||
void minimizeWindow( quint64 window );
|
||||
void minimizeWindow( quint64 window, bool hide );
|
||||
|
||||
/**
|
||||
* @brief normalizeWindow. Normalize window.
|
||||
@@ -67,15 +68,14 @@ class WindowCtrlWin : public QObject
|
||||
*/
|
||||
void normalizeWindow( quint64 window );
|
||||
|
||||
private:
|
||||
|
||||
/**
|
||||
* @brief hideWindow. Hide window.
|
||||
*
|
||||
* @param window The window.
|
||||
* @param state The state of the window.
|
||||
* @param hwnd The window.
|
||||
*/
|
||||
void hideWindow( quint64 window, bool state );
|
||||
|
||||
private:
|
||||
void hideWindow( HWND hwnd );
|
||||
|
||||
/**
|
||||
* @brief EnumWindowsProc. Callback for window enumaration.
|
||||
|
||||
@@ -156,7 +156,6 @@ void WindowCtrl::slotShowHide()
|
||||
|
||||
foreach( quint64 win_id, getWinIds() )
|
||||
{
|
||||
hideWindow( win_id, false );
|
||||
normalizeWindow( win_id );
|
||||
|
||||
emit signalConsole("Normalize");
|
||||
@@ -169,11 +168,7 @@ void WindowCtrl::slotShowHide()
|
||||
|
||||
foreach( quint64 win_id, getWinIds() )
|
||||
{
|
||||
if( m_minimize_hide )
|
||||
{
|
||||
hideWindow( win_id, true );
|
||||
}
|
||||
minimizeWindow( win_id );
|
||||
minimizeWindow( win_id, m_minimize_hide );
|
||||
|
||||
emit signalConsole("Minimize");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user