diff --git a/Ninjacrab.PersistentWindows.Solution/Common/PersistentWindowProcessor.cs b/Ninjacrab.PersistentWindows.Solution/Common/PersistentWindowProcessor.cs index 26a5469..3554f29 100644 --- a/Ninjacrab.PersistentWindows.Solution/Common/PersistentWindowProcessor.cs +++ b/Ninjacrab.PersistentWindows.Solution/Common/PersistentWindowProcessor.cs @@ -255,14 +255,23 @@ namespace PersistentWindows.Common { if (dump_dead_window) { - var allApps = new Dictionary>>(monitorApplications); //in-memory database of live windows + var allApps = new Dictionary>>(); //in-memory database of live windows + foreach (var display_key in monitorApplications.Keys) + { + allApps[display_key] = new Dictionary>(); + foreach (var hwnd in monitorApplications[display_key].Keys) + { + allApps[display_key][hwnd] = new List(monitorApplications[display_key][hwnd]); + } + } + foreach (var display_key in deadApps.Keys) { - if (!monitorApplications.ContainsKey(display_key)) + if (!allApps.ContainsKey(display_key)) continue; foreach (var hwnd in deadApps[display_key].Keys) { - if (monitorApplications[display_key].ContainsKey(hwnd)) + if (allApps[display_key].ContainsKey(hwnd)) continue; allApps[display_key][hwnd] = new List(deadApps[display_key][hwnd]); }