-
-
Notifications
You must be signed in to change notification settings - Fork 72
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Borders only use active color (and the inactive aero effects don't work anymore) #130
Comments
Are you using a custom bulr method? |
this is happening to me too, inactive blend color just doesn't do anything, it's always the active color, doesn't matter what kind of blur i choose |
What software do you guys use besides StartIsBack? |
I'm on 21H2 and at the time i took the screenshot i hadn't installed StartIsBack yet, although still happens with it. |
Release_x64.zip |
However this is not good news because it means that some software you have installed broke DwmBlurGlass and we need to know exactly which one. 🤔 |
I didn't install anything from trying the original 2.0.1 binaries and the ones uploaded just now. |
This is not possible, you may have installed some windhawk mods, or perhaps a udwm patch, or something else, because DwmBlurGlass works normally on a fresh install of Windows. |
I just reverted it and tested it without any windhawk mods or patches (i don't patch uDWM anyways) and the issue still happens.
|
Oh nevermind, it seems like it's the caption button restorer mod on windhawk. I restarted DWM and the issue wouldn't happen, then i opened windhawk with the mod enabled and it did break the inactive colors But why did it work before? |
DwmBlurGlass used to read memory directly from a specific address, however this is a dangerous behavior and leads to poor compatibility. |
Where is this module released? |
Looks like we'll have to emulate TreatAsActiveWindow's behavior in every Windows version from now on, sadly! |
I am sorry, I've copied the wrong code. Edited my comment (15 minutes ago). bool (*CTopLevelWindow_TreatAsActiveWindow_Original)(void);
bool CTopLevelWindow_TreatAsActiveWindow_Hook(void) {
return TRUE;
}
BOOL Wh_ModInit(void) {
HMODULE uDWM = GetModuleHandle(L"uDWM.dll");
if (!uDWM)
return FALSE;
WH_FIND_SYMBOL findSymbol;
HANDLE findSymbolHandle = Wh_FindFirstSymbol(uDWM, nullptr, &findSymbol);
if (!findSymbolHandle) {
Wh_Log(L"Wh_FindFirstSymbol failed");
return FALSE;
}
void* TreatAsActiveWindowAddr = nullptr;
do {
if (_wcsicmp(findSymbol.symbol,
L"private: bool __cdecl "
L"CTopLevelWindow::TreatAsActiveWindow(void)") == 0) {
TreatAsActiveWindowAddr = findSymbol.address;
Wh_Log(L"symbol: %s, Addr: %i", findSymbol.symbol,
findSymbol.address);
}
} while (Wh_FindNextSymbol(findSymbolHandle, &findSymbol));
Wh_SetFunctionHook(TreatAsActiveWindowAddr,
(void*)CTopLevelWindow_TreatAsActiveWindow_Hook,
(void**)&CTopLevelWindow_TreatAsActiveWindow_Original);
return TRUE;
} TreatAsActiveWindow is a behaviour in every Windows version from now on, but is there an alternative to disable the fading? Maybe finding the value that sets the opacity/alpha? |
Did @Dulappy write this? |
Yes. This a small portion of the pre-pre-pre-pre-pre-alpha of the final code (which is probably very different and that we don't have access to), so it could be doomed to break soon (like it is with the usage of DWMBlurGlass in this specific occasion). |
Yes Edit : I would like to retract my statement and return to just observing the conversation :) |
Good luck with getting it to work! I was simply inspecting the code. Unfortunately, I have no coding expertise but thought I should help in any way I can. |
Now that you have a solution, I will close it. |
As the title says. I've already tried deleting my old config, restarting my machine and DWM itself and no change, except that it worked once after installing.
The text was updated successfully, but these errors were encountered: