diff --git a/samples/IntegrationTestApp/ShowWindowTest.axaml b/samples/IntegrationTestApp/ShowWindowTest.axaml
index 9e194f0e7d..50ebecd5ba 100644
--- a/samples/IntegrationTestApp/ShowWindowTest.axaml
+++ b/samples/IntegrationTestApp/ShowWindowTest.axaml
@@ -53,7 +53,11 @@
-
+
+
+
+
+
diff --git a/samples/IntegrationTestApp/ShowWindowTest.axaml.cs b/samples/IntegrationTestApp/ShowWindowTest.axaml.cs
index 1ec7bd374d..6dfc3825a0 100644
--- a/samples/IntegrationTestApp/ShowWindowTest.axaml.cs
+++ b/samples/IntegrationTestApp/ShowWindowTest.axaml.cs
@@ -2,6 +2,7 @@ using System;
using System.Runtime.InteropServices;
using Avalonia;
using Avalonia.Controls;
+using Avalonia.Interactivity;
using Avalonia.Threading;
namespace IntegrationTestApp
@@ -70,5 +71,8 @@ namespace IntegrationTestApp
{
_orderTextBox!.Text = MacOSIntegration.GetOrderedIndex(this).ToString();
}
+
+ private void AddToWidth_Click(object? sender, RoutedEventArgs e) => Width = Bounds.Width + 10;
+ private void AddToHeight_Click(object? sender, RoutedEventArgs e) => Height = Bounds.Height + 10;
}
}
diff --git a/src/Windows/Avalonia.Win32/WindowImpl.cs b/src/Windows/Avalonia.Win32/WindowImpl.cs
index ae4fadd5f5..0a1d3e3ac8 100644
--- a/src/Windows/Avalonia.Win32/WindowImpl.cs
+++ b/src/Windows/Avalonia.Win32/WindowImpl.cs
@@ -593,12 +593,6 @@ namespace Avalonia.Win32
return;
}
}
- else
- {
- var position = Position;
- windowPlacement.NormalPosition.left = position.X;
- windowPlacement.NormalPosition.top = position.Y;
- }
windowPlacement.NormalPosition.right = windowPlacement.NormalPosition.left + windowWidth;
windowPlacement.NormalPosition.bottom = windowPlacement.NormalPosition.top + windowHeight;
diff --git a/tests/Avalonia.IntegrationTests.Appium/WindowTests.cs b/tests/Avalonia.IntegrationTests.Appium/WindowTests.cs
index 53b74f9694..d4a6380b5d 100644
--- a/tests/Avalonia.IntegrationTests.Appium/WindowTests.cs
+++ b/tests/Avalonia.IntegrationTests.Appium/WindowTests.cs
@@ -349,6 +349,24 @@ namespace Avalonia.IntegrationTests.Appium
}
}
+ [PlatformFact(TestPlatforms.Windows)]
+ public void Changing_Size_Should_Not_Change_Position()
+ {
+ using (OpenWindow())
+ {
+ var info = GetWindowInfo();
+
+ Session.FindElementByAccessibilityId("AddToWidth").SendClick();
+ Session.FindElementByAccessibilityId("AddToHeight").SendClick();
+
+ var updatedInfo = GetWindowInfo();
+ Assert.Equal(info.Position, updatedInfo.Position);
+ Assert.Equal(info.FrameSize
+ .WithWidth(info.FrameSize.Width + 10)
+ .WithHeight(info.FrameSize.Height + 10), updatedInfo.FrameSize);
+ }
+ }
+
public static TheoryData StartupLocationData()
{
var sizes = new Size?[] { null, new Size(400, 300) };