From 5fc59d5bc554660315970e8839ca387947792774 Mon Sep 17 00:00:00 2001 From: Kang Yu Date: Sat, 8 Mar 2025 14:16:05 -0800 Subject: [PATCH] #368, #388: fix mismatching of new window due to improper timing --- .../Common/PersistentWindowProcessor.cs | 27 +++---------------- 1 file changed, 4 insertions(+), 23 deletions(-) diff --git a/Ninjacrab.PersistentWindows.Solution/Common/PersistentWindowProcessor.cs b/Ninjacrab.PersistentWindows.Solution/Common/PersistentWindowProcessor.cs index 332fea6..807e5b9 100644 --- a/Ninjacrab.PersistentWindows.Solution/Common/PersistentWindowProcessor.cs +++ b/Ninjacrab.PersistentWindows.Solution/Common/PersistentWindowProcessor.cs @@ -2040,30 +2040,11 @@ namespace PersistentWindows.Common if (freezeCapture || !monitorApplications.ContainsKey(curDisplayKey)) return; - if (!windowProcessName.ContainsKey(hwnd)) - return; - string proc_name = windowProcessName[hwnd]; - if (fullScreenGamingProcesses.Contains(proc_name)) - return; - - var appWindows = CaptureWindowsOfInterest(); - foreach (var h in appWindows) + //try to inherit from killed window database + if (FindMatchingKilledWindow(hwnd) != IntPtr.Zero) { - //restore windows of the same process name - if (!windowProcessName.ContainsKey(h)) - 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); + userMove = true; + StartCaptureTimer(UserMoveLatency / 2); } } break;