Fix Windows not deblurring when name changes

This commit is contained in:
glax 2024-04-16 21:48:39 +02:00
parent 6d09501a7f
commit 3b52c1a5ee

View File

@ -52,19 +52,23 @@ public class Blur
WindowInfo windowInfo = windowInfos.FirstOrDefault(w => w.WindowHandle == window); WindowInfo windowInfo = windowInfos.FirstOrDefault(w => w.WindowHandle == window);
if(windowInfo is {WindowHandle: 0x0})//No WindowInfo found if(windowInfo is {WindowHandle: 0x0})//No WindowInfo found
continue; continue;
if(ShouldWindowBeBlurred(windowInfo)) if (ShouldWindowBeBlurred(windowInfo))
{
if(!maximisedWindowReached) if(!maximisedWindowReached)
BlurWindow(windowInfo); BlurWindow(windowInfo);
else if(maximisedWindowReached) else if(maximisedWindowReached)
DeleteBlur(windowInfo); DeleteBlur(windowInfo);
}
else
DeleteBlur(windowInfo);
if (windowInfo.WindowCommands is ShowWindowCommands.Maximize or ShowWindowCommands.ShowMaximized) if (windowInfo.WindowCommands is ShowWindowCommands.Maximize or ShowWindowCommands.ShowMaximized)
maximisedWindowReached = true; maximisedWindowReached = true;
} }
foreach(IntPtr blurredWindow in _windowHandleSceneItems.Keys.ToArray()) foreach(IntPtr blurredWindow in _windowHandleSceneItems.Keys.ToArray())
if(windowInfos.All(w => w.WindowHandle != blurredWindow)) if(windowInfos.All(w => w.WindowHandle != blurredWindow) || !ShouldWindowBeBlurred(windowInfos.First(w => w.WindowHandle == blurredWindow)))
DeleteBlur(blurredWindow); DeleteBlur(blurredWindow);
} }