aboutsummaryrefslogtreecommitdiff
path: root/ShiftOS.WinForms/WinformsWindowManager.cs
diff options
context:
space:
mode:
Diffstat (limited to 'ShiftOS.WinForms/WinformsWindowManager.cs')
-rw-r--r--ShiftOS.WinForms/WinformsWindowManager.cs17
1 files changed, 9 insertions, 8 deletions
diff --git a/ShiftOS.WinForms/WinformsWindowManager.cs b/ShiftOS.WinForms/WinformsWindowManager.cs
index 26438bf..cfcb6d3 100644
--- a/ShiftOS.WinForms/WinformsWindowManager.cs
+++ b/ShiftOS.WinForms/WinformsWindowManager.cs
@@ -184,20 +184,21 @@ namespace ShiftOS.WinForms
if (maxWindows > 0)
{
- List<WindowBorder> formstoclose = new List<WindowBorder>();
-
- for (int i = 0; i < maxWindows && i < AppearanceManager.OpenForms.Count; i++)
+ var windows = new List<WindowBorder>();
+ foreach(var WB in AppearanceManager.OpenForms)
{
- var frm = AppearanceManager.OpenForms[i] as WindowBorder;
- if(!frm.IsDialog)
- formstoclose.Add(frm);
-
+ if (WB is WindowBorder)
+ windows.Add(WB as WindowBorder);
}
+ List<WindowBorder> formstoclose = new List<WindowBorder>(windows.Where(x => x.IsDialog == false).ToArray());
+
while (formstoclose.Count > maxWindows - 1)
{
- formstoclose[0].Close();
+ this.Close(formstoclose[0].ParentWindow);
+ AppearanceManager.OpenForms.Remove(formstoclose[0]);
formstoclose.RemoveAt(0);
+
}
}
}