Fix multiple windows interfering
This commit is contained in:
parent
3f0c0bf7b8
commit
5f4af37c34
@ -30,14 +30,14 @@ public class Blur
|
|||||||
windowManager.WindowZOrderChanged += WindowManagerOnWindowZOrderChanged;
|
windowManager.WindowZOrderChanged += WindowManagerOnWindowZOrderChanged;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UpdateBlurs(WindowInfo[]? windowInfos = null, IntPtr[]? zOrder = null)
|
private void UpdateBlurs()
|
||||||
{
|
{
|
||||||
if (!enabledScenes.Contains(currentScene))
|
if (!enabledScenes.Contains(currentScene))
|
||||||
return;
|
return;
|
||||||
if (!_websocket.IsConnected)
|
if (!_websocket.IsConnected)
|
||||||
return;
|
return;
|
||||||
windowInfos ??= windowManager.WindowInfos;
|
WindowInfo[] windowInfos = windowManager.WindowInfos;
|
||||||
zOrder ??= windowManager.WindowZOrder;
|
IntPtr[] zOrder = windowManager.WindowZOrder;
|
||||||
|
|
||||||
bool maximixedWindowReached = false;
|
bool maximixedWindowReached = false;
|
||||||
|
|
||||||
@ -58,7 +58,7 @@ public class Blur
|
|||||||
}
|
}
|
||||||
|
|
||||||
foreach(IntPtr blurredWindow in windowHandleSceneItems.Keys.ToArray())
|
foreach(IntPtr blurredWindow in windowHandleSceneItems.Keys.ToArray())
|
||||||
if(!windowInfos.Any(w => w.WindowHandle == blurredWindow))
|
if(windowInfos.All(w => w.WindowHandle != blurredWindow))
|
||||||
DeleteBlur(blurredWindow);
|
DeleteBlur(blurredWindow);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -184,7 +184,7 @@ public class Blur
|
|||||||
Console.WriteLine($"Z-order changed {DateTime.UtcNow:O}");
|
Console.WriteLine($"Z-order changed {DateTime.UtcNow:O}");
|
||||||
Console.WriteLine($"{"Z",3} | {"hWnd",8} | {"PID",8} | {"Name",17} | {"Window Title",-17} | {"Vis",-8} | {"State",-13} | Rectangle");
|
Console.WriteLine($"{"Z",3} | {"hWnd",8} | {"PID",8} | {"Name",17} | {"Window Title",-17} | {"Vis",-8} | {"State",-13} | Rectangle");
|
||||||
Console.WriteLine(prnt);
|
Console.WriteLine(prnt);
|
||||||
UpdateBlurs(zOrder: neworder);
|
UpdateBlurs();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void WindowManagerOnWindowsChanged(WindowInfo[] before, WindowInfo[] after)
|
private void WindowManagerOnWindowsChanged(WindowInfo[] before, WindowInfo[] after)
|
||||||
@ -194,7 +194,7 @@ public class Blur
|
|||||||
prnt += $"{windowInfo}\n";
|
prnt += $"{windowInfo}\n";
|
||||||
Console.WriteLine($"Windows changed {DateTime.UtcNow:O}");
|
Console.WriteLine($"Windows changed {DateTime.UtcNow:O}");
|
||||||
Console.WriteLine(prnt);
|
Console.WriteLine(prnt);
|
||||||
UpdateBlurs(windowInfos: after);
|
UpdateBlurs();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void WebsocketOnDisconnected(object? sender, ObsDisconnectionInfo e)
|
private void WebsocketOnDisconnected(object? sender, ObsDisconnectionInfo e)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user