Fix event handler leaks in LauncherConnecting
This commit is contained in:
@@ -52,15 +52,29 @@ namespace Content.Client.Launcher
|
|||||||
|
|
||||||
_userInterfaceManager.StateRoot.AddChild(_control);
|
_userInterfaceManager.StateRoot.AddChild(_control);
|
||||||
|
|
||||||
_clientNetManager.ConnectFailed += (_, args) =>
|
_clientNetManager.ConnectFailed += OnConnectFailed;
|
||||||
|
_clientNetManager.ClientConnectStateChanged += OnConnectStateChanged;
|
||||||
|
|
||||||
|
CurrentPage = Page.Connecting;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Shutdown()
|
||||||
|
{
|
||||||
|
_control?.Dispose();
|
||||||
|
|
||||||
|
_clientNetManager.ConnectFailed -= OnConnectFailed;
|
||||||
|
_clientNetManager.ClientConnectStateChanged -= OnConnectStateChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnConnectFailed(object? _, NetConnectFailArgs args)
|
||||||
{
|
{
|
||||||
ConnectFailReason = args.Reason;
|
ConnectFailReason = args.Reason;
|
||||||
CurrentPage = Page.ConnectFailed;
|
CurrentPage = Page.ConnectFailed;
|
||||||
};
|
}
|
||||||
|
|
||||||
_clientNetManager.ClientConnectStateChanged += state => ConnectionStateChanged?.Invoke(state);
|
private void OnConnectStateChanged(ClientConnectionState state)
|
||||||
|
{
|
||||||
CurrentPage = Page.Connecting;
|
ConnectionStateChanged?.Invoke(state);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RetryConnect()
|
public void RetryConnect()
|
||||||
@@ -77,11 +91,6 @@ namespace Content.Client.Launcher
|
|||||||
_gameController.Shutdown("Exit button pressed");
|
_gameController.Shutdown("Exit button pressed");
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Shutdown()
|
|
||||||
{
|
|
||||||
_control?.Dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetDisconnected()
|
public void SetDisconnected()
|
||||||
{
|
{
|
||||||
CurrentPage = Page.Disconnected;
|
CurrentPage = Page.Disconnected;
|
||||||
|
|||||||
Reference in New Issue
Block a user