Browse Source

Merge pull request #3306 from AvaloniaUI/fixes/double-detach-window-issue

Fix Exception when window is closed via Close() Method
release/0.9.0-preview9
danwalmsley 7 years ago
committed by Dan Walmsley
parent
commit
fcfeb12c25
  1. 1
      src/Avalonia.Controls/Window.cs
  2. 3
      tests/Avalonia.Controls.UnitTests/WindowTests.cs
  3. 4
      tests/Avalonia.UnitTests/MockWindowingPlatform.cs

1
src/Avalonia.Controls/Window.cs

@ -336,7 +336,6 @@ namespace Avalonia.Controls
if (close)
{
PlatformImpl?.Dispose();
HandleClosed();
}
}
}

3
tests/Avalonia.Controls.UnitTests/WindowTests.cs

@ -228,8 +228,7 @@ namespace Avalonia.Controls.UnitTests
{
using (UnitTestApplication.Start(TestServices.StyledWindow))
{
var windowImpl = Mock.Of<IWindowImpl>(x => x.Scaling == 1);
var target = new Window(windowImpl);
var target = new Window();
target.Show();
target.Close();

4
tests/Avalonia.UnitTests/MockWindowingPlatform.cs

@ -28,6 +28,10 @@ namespace Avalonia.UnitTests
return CreatePopupMock().Object;
});
mock.Setup(x => x.Dispose()).Callback(() =>
{
mock.Object.Closed?.Invoke();
});
PixelPoint pos = default;
mock.SetupGet(x => x.Position).Returns(() => pos);
mock.Setup(x => x.Move(It.IsAny<PixelPoint>())).Callback(new Action<PixelPoint>(np => pos = np));

Loading…
Cancel
Save