Ensure EUIs close themselves (#15860)

This commit is contained in:
Leon Friedrich
2023-04-29 15:16:24 +12:00
committed by GitHub
parent 58300598e2
commit cedec8d415
34 changed files with 79 additions and 128 deletions

View File

@@ -19,6 +19,7 @@ public sealed class AdminLogsEui : BaseEui
public AdminLogsEui()
{
LogsWindow = new AdminLogsWindow();
LogsWindow.OnClose += OnCloseWindow;
LogsControl = LogsWindow.Logs;
LogsControl.LogSearch.OnTextEntered += _ => RequestLogs();
@@ -39,7 +40,13 @@ public sealed class AdminLogsEui : BaseEui
private void OnRequestClosed(WindowRequestClosedEventArgs args)
{
SendMessage(new Close());
SendMessage(new CloseEuiMessage());
}
private void OnCloseWindow()
{
if (ClydeWindow == null)
SendMessage(new CloseEuiMessage());
}
private void RequestLogs()
@@ -74,10 +81,6 @@ public sealed class AdminLogsEui : BaseEui
return;
}
LogsControl.Orphan();
LogsWindow.Dispose();
LogsWindow = null;
var monitor = _clyde.EnumerateMonitors().First();
ClydeWindow = _clyde.CreateWindow(new WindowCreateParameters
@@ -89,6 +92,10 @@ public sealed class AdminLogsEui : BaseEui
Height = 400
});
LogsControl.Orphan();
LogsWindow.Dispose();
LogsWindow = null;
ClydeWindow.RequestClosed += OnRequestClosed;
ClydeWindow.DisposeOnClose = true;