mirror of
https://github.com/Open-Shell/Open-Shell-Menu.git
synced 2026-04-11 17:37:22 +10:00
Support for unthemed taskbar (#2369)
* Support for unthemed taskbar See this discussion: https://github.com/Open-Shell/Open-Shell-Menu/discussions/2367 * Refactor color handling in StartMenuDLL
This commit is contained in:
@@ -1624,7 +1624,7 @@ static void ComputeTaskbarColors( int *data )
|
|||||||
{
|
{
|
||||||
bool bDefLook;
|
bool bDefLook;
|
||||||
int look=GetSettingInt(L"TaskbarLook",bDefLook);
|
int look=GetSettingInt(L"TaskbarLook",bDefLook);
|
||||||
if (GetWinVersion()<WIN_VER_WIN10 || look==TASKBAR_AEROGLASS || (look==TASKBAR_TRANSPARENT && g_TaskbarTexture))
|
if (GetWinVersion()<WIN_VER_WIN10 || !IsAppThemed() || look==TASKBAR_AEROGLASS || (look==TASKBAR_TRANSPARENT && g_TaskbarTexture))
|
||||||
{
|
{
|
||||||
memset(data,0,16);
|
memset(data,0,16);
|
||||||
}
|
}
|
||||||
@@ -1872,6 +1872,7 @@ static LRESULT CALLBACK SubclassTaskBarProc( HWND hWnd, UINT uMsg, WPARAM wParam
|
|||||||
ComputeTaskbarColors(data);
|
ComputeTaskbarColors(data);
|
||||||
WINCOMPATTRDATA attrData={0x13,&data,sizeof(data)};
|
WINCOMPATTRDATA attrData={0x13,&data,sizeof(data)};
|
||||||
SetWindowCompositionAttribute(hWnd,&attrData);
|
SetWindowCompositionAttribute(hWnd,&attrData);
|
||||||
|
UpdateTaskBars(TASKBAR_UPDATE_TEXTURE);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
if ((uMsg==WM_DWMCOLORIZATIONCOLORCHANGED || uMsg==WM_SETTINGCHANGE) && taskBar && taskBar->bCustomLook && SetWindowCompositionAttribute && GetWinVersion()<WIN_VER_WIN10)
|
if ((uMsg==WM_DWMCOLORIZATIONCOLORCHANGED || uMsg==WM_SETTINGCHANGE) && taskBar && taskBar->bCustomLook && SetWindowCompositionAttribute && GetWinVersion()<WIN_VER_WIN10)
|
||||||
@@ -1932,7 +1933,7 @@ static LRESULT CALLBACK SubclassTaskBarProc( HWND hWnd, UINT uMsg, WPARAM wParam
|
|||||||
WINCOMPATTRDATA attrData={0x13,&data,sizeof(data)};
|
WINCOMPATTRDATA attrData={0x13,&data,sizeof(data)};
|
||||||
SetWindowCompositionAttribute(hWnd,&attrData);
|
SetWindowCompositionAttribute(hWnd,&attrData);
|
||||||
}
|
}
|
||||||
if (g_TaskbarTexture && IsAppThemed())
|
if (g_TaskbarTexture)
|
||||||
{
|
{
|
||||||
// draw taskbar background (behind start button and separators)
|
// draw taskbar background (behind start button and separators)
|
||||||
PAINTSTRUCT ps;
|
PAINTSTRUCT ps;
|
||||||
@@ -2383,12 +2384,19 @@ void UpdateTaskBars( TUpdateTaskbar update )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (GetWinVersion()<WIN_VER_WIN10 && (!bDefColor || !bDefOpacity))
|
else if ((GetWinVersion()<WIN_VER_WIN10 && (!bDefColor || !bDefOpacity)) || !IsAppThemed())
|
||||||
{
|
{
|
||||||
if (bDefColor && GetWinVersion()>WIN_VER_WIN7)
|
if (bDefColor && GetWinVersion()>WIN_VER_WIN7)
|
||||||
{
|
{
|
||||||
color=GetSystemGlassColor8();
|
if (IsAppThemed())
|
||||||
color=((color&0xFF)<<16)|(color&0xFF00)|((color>>16)&0xFF);
|
{
|
||||||
|
color=GetSystemGlassColor8();
|
||||||
|
color=((color&0xFF)<<16)|(color&0xFF00)|((color>>16)&0xFF);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
color=GetSysColor(COLOR_BTNFACE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
BITMAPINFO bi={0};
|
BITMAPINFO bi={0};
|
||||||
bi.bmiHeader.biSize=sizeof(BITMAPINFOHEADER);
|
bi.bmiHeader.biSize=sizeof(BITMAPINFOHEADER);
|
||||||
@@ -3012,7 +3020,10 @@ static void InitStartMenuDLL( void )
|
|||||||
if (GetWinVersion()<=WIN_VER_WIN81)
|
if (GetWinVersion()<=WIN_VER_WIN81)
|
||||||
g_DrawThemeBackgroundHook=SetIatHook(module,"uxtheme.dll","DrawThemeBackground",DrawThemeBackground2);
|
g_DrawThemeBackgroundHook=SetIatHook(module,"uxtheme.dll","DrawThemeBackground",DrawThemeBackground2);
|
||||||
g_DrawThemeTextHook=SetIatHook(module,"uxtheme.dll","DrawThemeText",DrawThemeText2);
|
g_DrawThemeTextHook=SetIatHook(module,"uxtheme.dll","DrawThemeText",DrawThemeText2);
|
||||||
g_DrawThemeTextExHook=SetIatHook(module,"uxtheme.dll","DrawThemeTextEx",DrawThemeTextEx2);
|
if (IsAppThemed())
|
||||||
|
{
|
||||||
|
g_DrawThemeTextExHook=SetIatHook(module,"uxtheme.dll","DrawThemeTextEx",DrawThemeTextEx2);
|
||||||
|
}
|
||||||
g_DrawThemeTextCtlHook=SetIatHook(GetModuleHandle(L"comctl32.dll"),"uxtheme.dll","DrawThemeText",DrawThemeText2);
|
g_DrawThemeTextCtlHook=SetIatHook(GetModuleHandle(L"comctl32.dll"),"uxtheme.dll","DrawThemeText",DrawThemeText2);
|
||||||
if (GetWinVersion()>=WIN_VER_WIN10)
|
if (GetWinVersion()>=WIN_VER_WIN10)
|
||||||
g_SetWindowCompositionAttributeHook=SetIatHook(module,"user32.dll","SetWindowCompositionAttribute",SetWindowCompositionAttribute2);
|
g_SetWindowCompositionAttributeHook=SetIatHook(module,"user32.dll","SetWindowCompositionAttribute",SetWindowCompositionAttribute2);
|
||||||
|
|||||||
Reference in New Issue
Block a user