From 0d2e10498f2f46d92ff34731eb1ca08dcb1c5672 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Thu, 28 Nov 2019 19:37:30 +0000 Subject: [PATCH 1/2] Window shouldnt call HandleClosed as this is called by TopLevel signaled by backed Closed event. --- src/Avalonia.Controls/Window.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Avalonia.Controls/Window.cs b/src/Avalonia.Controls/Window.cs index 1816a6c81d..f66a248aaf 100644 --- a/src/Avalonia.Controls/Window.cs +++ b/src/Avalonia.Controls/Window.cs @@ -336,7 +336,6 @@ namespace Avalonia.Controls if (close) { PlatformImpl?.Dispose(); - HandleClosed(); } } } From b8b8e3f8cc16a7669a0360e00582390c55d4c16a Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 29 Nov 2019 10:44:39 +0100 Subject: [PATCH 2/2] Fix IWindowImpl mocks to call Close on Dispose. --- tests/Avalonia.Controls.UnitTests/WindowTests.cs | 3 +-- tests/Avalonia.UnitTests/MockWindowingPlatform.cs | 4 ++++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/tests/Avalonia.Controls.UnitTests/WindowTests.cs b/tests/Avalonia.Controls.UnitTests/WindowTests.cs index d87014f646..0508edd92f 100644 --- a/tests/Avalonia.Controls.UnitTests/WindowTests.cs +++ b/tests/Avalonia.Controls.UnitTests/WindowTests.cs @@ -228,8 +228,7 @@ namespace Avalonia.Controls.UnitTests { using (UnitTestApplication.Start(TestServices.StyledWindow)) { - var windowImpl = Mock.Of(x => x.Scaling == 1); - var target = new Window(windowImpl); + var target = new Window(); target.Show(); target.Close(); diff --git a/tests/Avalonia.UnitTests/MockWindowingPlatform.cs b/tests/Avalonia.UnitTests/MockWindowingPlatform.cs index c33ec72141..a6701ef655 100644 --- a/tests/Avalonia.UnitTests/MockWindowingPlatform.cs +++ b/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())).Callback(new Action(np => pos = np));