#368, #388: fix mismatching of new window due to improper timing

This commit is contained in:
Kang Yu 2025-03-08 14:16:05 -08:00
parent 8c710ab55c
commit 5fc59d5bc5

View file

@ -2040,30 +2040,11 @@ namespace PersistentWindows.Common
if (freezeCapture || !monitorApplications.ContainsKey(curDisplayKey)) if (freezeCapture || !monitorApplications.ContainsKey(curDisplayKey))
return; return;
if (!windowProcessName.ContainsKey(hwnd)) //try to inherit from killed window database
return; if (FindMatchingKilledWindow(hwnd) != IntPtr.Zero)
string proc_name = windowProcessName[hwnd];
if (fullScreenGamingProcesses.Contains(proc_name))
return;
var appWindows = CaptureWindowsOfInterest();
foreach (var h in appWindows)
{ {
//restore windows of the same process name userMove = true;
if (!windowProcessName.ContainsKey(h)) StartCaptureTimer(UserMoveLatency / 2);
continue;
if (proc_name != windowProcessName[h])
continue;
if (monitorApplications[curDisplayKey].ContainsKey(h))
continue;
DateTime now = DateTime.Now;
ApplicationDisplayMetrics curDisplayMetrics;
ApplicationDisplayMetrics prevDisplayMetrics;
//try to inherit from killed window database
bool isMoved = IsWindowMoved(curDisplayKey, h, 0, now, out curDisplayMetrics, out prevDisplayMetrics);
} }
} }
break; break;