diff --git a/src/Avalonia.Visuals/Rect.cs b/src/Avalonia.Visuals/Rect.cs
index 8dadaa3b0f..d1110e0613 100644
--- a/src/Avalonia.Visuals/Rect.cs
+++ b/src/Avalonia.Visuals/Rect.cs
@@ -421,7 +421,8 @@ namespace Avalonia
}
///
- /// Normalizes the rectangle so both the and are positive, without changing the location of the rectangle
+ /// Normalizes the rectangle so both the and are positive, without changing the location of the rectangle
///
/// Normalized Rect
///
@@ -431,24 +432,25 @@ namespace Avalonia
{
Rect rect = this;
- if(double.IsNaN(rect.Right) || double.IsNaN(rect.Bottom) || double.IsNaN(rect.X) || double.IsNaN(rect.Y) || double.IsNaN(Height) || double.IsNaN(Width))
+ if(double.IsNaN(rect.Right) || double.IsNaN(rect.Bottom) ||
+ double.IsNaN(rect.X) || double.IsNaN(rect.Y) ||
+ double.IsNaN(Height) || double.IsNaN(Width))
{
return Rect.Empty;
}
if (rect.Width < 0)
{
- var old = X;
var x = X + Width;
- var width = old - x;
+ var width = X - x;
rect = rect.WithX(x).WithWidth(width);
}
+
if (rect.Height < 0)
{
- var old = Y;
var y = Y + Height;
- var height = old - y;
+ var height = Y - y;
rect = rect.WithY(y).WithHeight(height);
}
diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/DrawOperation.cs b/src/Avalonia.Visuals/Rendering/SceneGraph/DrawOperation.cs
index 38df0cb289..c49e7705e0 100644
--- a/src/Avalonia.Visuals/Rendering/SceneGraph/DrawOperation.cs
+++ b/src/Avalonia.Visuals/Rendering/SceneGraph/DrawOperation.cs
@@ -11,9 +11,7 @@ namespace Avalonia.Rendering.SceneGraph
{
public DrawOperation(Rect bounds, Matrix transform)
{
- bounds = bounds.Normalize();
-
- bounds = bounds.TransformToAABB(transform);
+ bounds = bounds.Normalize().TransformToAABB(transform);
Bounds = new Rect(
new Point(Math.Floor(bounds.X), Math.Floor(bounds.Y)),
diff --git a/tests/Avalonia.Visuals.UnitTests/RectTests.cs b/tests/Avalonia.Visuals.UnitTests/RectTests.cs
index 89800e41bf..a2b0569949 100644
--- a/tests/Avalonia.Visuals.UnitTests/RectTests.cs
+++ b/tests/Avalonia.Visuals.UnitTests/RectTests.cs
@@ -47,7 +47,10 @@ namespace Avalonia.Visuals.UnitTests
[Fact]
public void Normalize_Should_Make_Invalid_Rects_Empty()
{
- var result = new Rect(double.NegativeInfinity,double.PositiveInfinity, double.PositiveInfinity, double.PositiveInfinity).Normalize();
+ var result = new Rect(
+ double.NegativeInfinity, double.PositiveInfinity,
+ double.PositiveInfinity, double.PositiveInfinity)
+ .Normalize();
Assert.Equal(Rect.Empty, result);
}