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;
|
||||
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);
|
||||
}
|
||||
@@ -1872,6 +1872,7 @@ static LRESULT CALLBACK SubclassTaskBarProc( HWND hWnd, UINT uMsg, WPARAM wParam
|
||||
ComputeTaskbarColors(data);
|
||||
WINCOMPATTRDATA attrData={0x13,&data,sizeof(data)};
|
||||
SetWindowCompositionAttribute(hWnd,&attrData);
|
||||
UpdateTaskBars(TASKBAR_UPDATE_TEXTURE);
|
||||
return res;
|
||||
}
|
||||
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)};
|
||||
SetWindowCompositionAttribute(hWnd,&attrData);
|
||||
}
|
||||
if (g_TaskbarTexture && IsAppThemed())
|
||||
if (g_TaskbarTexture)
|
||||
{
|
||||
// draw taskbar background (behind start button and separators)
|
||||
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)
|
||||
{
|
||||
color=GetSystemGlassColor8();
|
||||
color=((color&0xFF)<<16)|(color&0xFF00)|((color>>16)&0xFF);
|
||||
if (IsAppThemed())
|
||||
{
|
||||
color=GetSystemGlassColor8();
|
||||
color=((color&0xFF)<<16)|(color&0xFF00)|((color>>16)&0xFF);
|
||||
}
|
||||
else
|
||||
{
|
||||
color=GetSysColor(COLOR_BTNFACE);
|
||||
}
|
||||
}
|
||||
BITMAPINFO bi={0};
|
||||
bi.bmiHeader.biSize=sizeof(BITMAPINFOHEADER);
|
||||
@@ -3012,7 +3020,10 @@ static void InitStartMenuDLL( void )
|
||||
if (GetWinVersion()<=WIN_VER_WIN81)
|
||||
g_DrawThemeBackgroundHook=SetIatHook(module,"uxtheme.dll","DrawThemeBackground",DrawThemeBackground2);
|
||||
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);
|
||||
if (GetWinVersion()>=WIN_VER_WIN10)
|
||||
g_SetWindowCompositionAttributeHook=SetIatHook(module,"user32.dll","SetWindowCompositionAttribute",SetWindowCompositionAttribute2);
|
||||
|
||||
Reference in New Issue
Block a user