mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-09-15 14:52:35 +02:00
Ensure Window Close does not fire from Dispose on Clyde.
This commit is contained in:
@@ -96,6 +96,8 @@ namespace Robust.Client.Graphics.Clyde
|
||||
|
||||
private bool _quartResLights = true;
|
||||
|
||||
private bool _disposing;
|
||||
|
||||
public override void SetWindowTitle(string title)
|
||||
{
|
||||
_window.Title = title;
|
||||
@@ -183,7 +185,7 @@ namespace Robust.Client.Graphics.Clyde
|
||||
};
|
||||
|
||||
_window.KeyUp += (sender, eventArgs) => { _gameController.GameController.KeyUp((KeyEventArgs) eventArgs); };
|
||||
_window.Closed += (sender, eventArgs) => { _gameController.GameController.Shutdown("Window closed"); };
|
||||
_window.Closed += _onWindowClosed;
|
||||
_window.Resize += (sender, eventArgs) =>
|
||||
{
|
||||
var oldSize = _windowSize;
|
||||
@@ -539,6 +541,7 @@ namespace Robust.Client.Graphics.Clyde
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
_disposing = true;
|
||||
_window.Dispose();
|
||||
_shutdownAudio();
|
||||
}
|
||||
@@ -585,6 +588,18 @@ namespace Robust.Client.Graphics.Clyde
|
||||
PixelFormat.Rgba, PixelType.Float, IntPtr.Zero);
|
||||
}
|
||||
|
||||
private void _onWindowClosed(object sender, EventArgs args)
|
||||
{
|
||||
if (_disposing)
|
||||
{
|
||||
// OpenTK seems to fire Closed when closing the window via Dispose on Windows.
|
||||
// So uh, ignore it.
|
||||
return;
|
||||
}
|
||||
|
||||
_gameController.GameController.Shutdown("Window closed");
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
[PublicAPI]
|
||||
private readonly struct Vertex2D
|
||||
|
||||
Reference in New Issue
Block a user