Browse Source

Merge branch 'master' into fixes/Warnings/XML-Comment

pull/9688/head
Max Katz 3 years ago
committed by GitHub
parent
commit
d7d5981d0a
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      .editorconfig
  2. 2
      samples/ControlCatalog/Pages/ImagePage.xaml.cs
  3. 2
      src/Android/Avalonia.Android/Platform/SkiaPlatform/AndroidFramebuffer.cs
  4. 9
      src/Avalonia.Base/CornerRadius.cs
  5. 2
      src/Avalonia.Base/Data/Core/ExpressionNode.cs
  6. 2
      src/Avalonia.Base/Data/Core/ExpressionObserver.cs
  7. 11
      src/Avalonia.Base/Media/BoxShadow.cs
  8. 4
      src/Avalonia.Base/Media/BoxShadows.cs
  9. 2
      src/Avalonia.Base/Media/FormattedText.cs
  10. 4
      src/Avalonia.Base/Media/Geometry.cs
  11. 2
      src/Avalonia.Base/Media/GeometryDrawing.cs
  12. 2
      src/Avalonia.Base/Media/GlyphRunDrawing.cs
  13. 2
      src/Avalonia.Base/Media/ImageDrawing.cs
  14. 4
      src/Avalonia.Base/Media/Imaging/CroppedBitmap.cs
  15. 1
      src/Avalonia.Base/Media/TextFormatting/FormattedTextSource.cs
  16. 4
      src/Avalonia.Base/Media/TextFormatting/TextLineImpl.cs
  17. 1
      src/Avalonia.Base/Media/TextFormatting/Unicode/CodepointEnumerator.cs
  18. 15
      src/Avalonia.Base/PixelRect.cs
  19. 21
      src/Avalonia.Base/Rect.cs
  20. 2
      src/Avalonia.Base/Rendering/Composition/Server/DrawingContextProxy.cs
  21. 2
      src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionDrawListVisual.cs
  22. 8
      src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionTarget.cs
  23. 8
      src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionVisual.cs
  24. 4
      src/Avalonia.Base/Rendering/DeferredRenderer.cs
  25. 5
      src/Avalonia.Base/Rendering/DirtyRects.cs
  26. 4
      src/Avalonia.Base/Rendering/ImmediateRenderer.cs
  27. 2
      src/Avalonia.Base/Rendering/SceneGraph/BitmapBlendModeNode.cs
  28. 2
      src/Avalonia.Base/Rendering/SceneGraph/ClipNode.cs
  29. 2
      src/Avalonia.Base/Rendering/SceneGraph/GeometryClipNode.cs
  30. 4
      src/Avalonia.Base/Rendering/SceneGraph/OpacityMaskNode.cs
  31. 2
      src/Avalonia.Base/Rendering/SceneGraph/OpacityNode.cs
  32. 6
      src/Avalonia.Base/Rendering/SceneGraph/SceneBuilder.cs
  33. 8
      src/Avalonia.Base/Size.cs
  34. 17
      src/Avalonia.Base/Thickness.cs
  35. 5
      src/Avalonia.Controls.DataGrid/DataGrid.cs
  36. 4
      src/Avalonia.Controls.DataGrid/DataGridCheckBoxColumn.cs
  37. 1
      src/Avalonia.Controls.DataGrid/DataGridColumnHeader.cs
  38. 2
      src/Avalonia.Controls.DataGrid/DataGridRowHeader.cs
  39. 2
      src/Avalonia.Controls.DataGrid/Primitives/DataGridCellsPresenter.cs
  40. 2
      src/Avalonia.Controls.DataGrid/Primitives/DataGridColumnHeadersPresenter.cs
  41. 2
      src/Avalonia.Controls.DataGrid/Primitives/DataGridDetailsPresenter.cs
  42. 4
      src/Avalonia.Controls/Flyouts/FlyoutBase.cs
  43. 10
      src/Avalonia.Controls/LayoutTransformControl.cs
  44. 2
      src/Avalonia.Controls/NativeControlHost.cs
  45. 6
      src/Avalonia.Controls/Presenters/ItemsPresenter.cs
  46. 1
      src/Avalonia.Controls/Presenters/TextPresenter.cs
  47. 2
      src/Avalonia.Controls/Primitives/PopupPositioning/ManagedPopupPositioner.cs
  48. 2
      src/Avalonia.Controls/Primitives/SelectingItemsControl.cs
  49. 4
      src/Avalonia.Controls/Repeater/ViewportManager.cs
  50. 2
      src/Avalonia.Controls/Shapes/Shape.cs
  51. 6
      src/Avalonia.Controls/Window.cs
  52. 3
      src/Avalonia.Diagnostics/Diagnostics/Controls/Application.cs
  53. 2
      src/Avalonia.Headless/HeadlessPlatformRenderInterface.cs
  54. 3
      src/Avalonia.Native/ClipboardImpl.cs
  55. 1
      src/Avalonia.Native/IAvnMenu.cs
  56. 1
      src/Avalonia.Native/WindowImplBase.cs
  57. 2
      src/Avalonia.X11/X11Clipboard.cs
  58. 6
      src/Browser/Avalonia.Browser/BrowserNativeControlHost.cs
  59. 2
      src/Browser/Avalonia.Browser/WebEmbeddableControlRoot.cs
  60. 2
      src/Linux/Avalonia.LinuxFramebuffer/Input/EvDev/EvDevBackend.cs
  61. 1
      src/Linux/Avalonia.LinuxFramebuffer/Input/LibInput/LibInputBackend.cs
  62. 4
      src/Skia/Avalonia.Skia/DrawingContextImpl.cs
  63. 2
      src/Skia/Avalonia.Skia/GeometryImpl.cs
  64. 2
      src/Skia/Avalonia.Skia/StreamGeometryImpl.cs
  65. 2
      src/Windows/Avalonia.Win32/Interop/Automation/UiaCoreTypesApi.cs
  66. 2
      src/Windows/Avalonia.Win32/WindowImpl.cs
  67. 2
      tests/Avalonia.Base.UnitTests/RectTests.cs
  68. 4
      tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs
  69. 4
      tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/DrawOperationTests.cs
  70. 4
      tests/Avalonia.Controls.UnitTests/Presenters/ItemsPresenterTests_Virtualization_Simple.cs
  71. 2
      tests/Avalonia.Controls.UnitTests/Shapes/RectangleTests.cs

2
.editorconfig

@ -152,6 +152,8 @@ dotnet_diagnostic.CA1820.severity = warning
dotnet_diagnostic.CA1821.severity = warning
# CA1822: Mark members as static
dotnet_diagnostic.CA1822.severity = suggestion
# CA1823: Avoid unused private fields
dotnet_diagnostic.CA1823.severity = warning
dotnet_code_quality.CA1822.api_surface = private, internal
# CA1825: Avoid zero-length array allocations
dotnet_diagnostic.CA1825.severity = warning

2
samples/ControlCatalog/Pages/ImagePage.xaml.cs

@ -70,7 +70,7 @@ namespace ControlCatalog.Pages
3 => new PixelRect(new PixelPoint(bitmapWidth - cropSize.Width, 0), cropSize),
4 => new PixelRect(new PixelPoint(0, bitmapHeight - cropSize.Height), cropSize),
5 => new PixelRect(new PixelPoint(bitmapWidth - cropSize.Width, bitmapHeight - cropSize.Height), cropSize),
_ => PixelRect.Empty
_ => default
};
}

2
src/Android/Avalonia.Android/Platform/SkiaPlatform/AndroidFramebuffer.cs

@ -96,12 +96,14 @@ namespace Avalonia.Android.Platform.SkiaPlatform
public IntPtr bits;
// Do not touch.
#pragma warning disable CA1823 // Avoid unused private fields
uint reserved1;
uint reserved2;
uint reserved3;
uint reserved4;
uint reserved5;
uint reserved6;
#pragma warning restore CA1823 // Avoid unused private fields
}
}
}

9
src/Avalonia.Base/CornerRadius.cs

@ -61,9 +61,13 @@ namespace Avalonia
public double BottomLeft { get; }
/// <summary>
/// Gets a value indicating whether all corner radii are set to 0.
/// Gets a value indicating whether the instance has default values (all corner radii are set to 0).
/// </summary>
public bool IsEmpty => TopLeft.Equals(0) && IsUniform;
public bool IsDefault => TopLeft == 0 && TopRight == 0 && BottomLeft == 0 && BottomRight == 0;
/// <inheritdoc cref="IsDefault"/>
[Obsolete("Use IsDefault instead.")]
public bool IsEmpty => IsDefault;
/// <summary>
/// Gets a value indicating whether all corner radii are equal.
@ -79,7 +83,6 @@ namespace Avalonia
{
// ReSharper disable CompareOfFloatsByEqualityOperator
return TopLeft == other.TopLeft &&
TopRight == other.TopRight &&
BottomRight == other.BottomRight &&
BottomLeft == other.BottomLeft;

2
src/Avalonia.Base/Data/Core/ExpressionNode.cs

@ -4,8 +4,6 @@ namespace Avalonia.Data.Core
{
public abstract class ExpressionNode
{
private static readonly object CacheInvalid = new object();
protected static readonly WeakReference<object?> UnsetReference =
new WeakReference<object?>(AvaloniaProperty.UnsetValue);

2
src/Avalonia.Base/Data/Core/ExpressionObserver.cs

@ -49,8 +49,6 @@ namespace Avalonia.Data.Core
new TaskStreamPlugin(),
new ObservableStreamPlugin(),
};
private static readonly object UninitializedValue = new object();
private readonly ExpressionNode _node;
private object? _root;
private Func<object?>? _rootGetter;

11
src/Avalonia.Base/Media/BoxShadow.cs

@ -45,7 +45,14 @@ namespace Avalonia.Media
}
}
public bool IsEmpty => OffsetX == 0 && OffsetY == 0 && Blur == 0 && Spread == 0;
/// <summary>
/// Gets a value indicating whether the instance has default values.
/// </summary>
public bool IsDefault => OffsetX == 0 && OffsetY == 0 && Blur == 0 && Spread == 0;
/// <inheritdoc cref="IsDefault"/>
[Obsolete("Use IsDefault instead.")]
public bool IsEmpty => IsDefault;
private readonly static char[] s_Separator = new char[] { ' ', '\t' };
@ -82,7 +89,7 @@ namespace Avalonia.Media
{
var sb = StringBuilderCache.Acquire();
if (IsEmpty)
if (IsDefault)
{
return "none";
}

4
src/Avalonia.Base/Media/BoxShadows.cs

@ -21,7 +21,7 @@ namespace Avalonia.Media
{
_first = shadow;
_list = null;
Count = _first.IsEmpty ? 0 : 1;
Count = _first.IsDefault ? 0 : 1;
}
public BoxShadows(BoxShadow first, BoxShadow[] rest)
@ -120,7 +120,7 @@ namespace Avalonia.Media
get
{
foreach(var boxShadow in this)
if (!boxShadow.IsEmpty && boxShadow.IsInset)
if (!boxShadow.IsDefault && boxShadow.IsInset)
return true;
return false;
}

2
src/Avalonia.Base/Media/FormattedText.cs

@ -1379,7 +1379,7 @@ namespace Avalonia.Media
}
}
if (accumulatedBounds?.PlatformImpl == null || accumulatedBounds.PlatformImpl.Bounds.IsEmpty)
if (accumulatedBounds?.PlatformImpl == null || accumulatedBounds.PlatformImpl.Bounds.IsDefault)
{
return null;
}

4
src/Avalonia.Base/Media/Geometry.cs

@ -30,7 +30,7 @@ namespace Avalonia.Media
/// <summary>
/// Gets the geometry's bounding rectangle.
/// </summary>
public Rect Bounds => PlatformImpl?.Bounds ?? Rect.Empty;
public Rect Bounds => PlatformImpl?.Bounds ?? default;
/// <summary>
/// Gets the platform-specific implementation of the geometry.
@ -84,7 +84,7 @@ namespace Avalonia.Media
/// </summary>
/// <param name="pen">The stroke thickness.</param>
/// <returns>The bounding rectangle.</returns>
public Rect GetRenderBounds(IPen pen) => PlatformImpl?.GetRenderBounds(pen) ?? Rect.Empty;
public Rect GetRenderBounds(IPen pen) => PlatformImpl?.GetRenderBounds(pen) ?? default;
/// <summary>
/// Indicates whether the geometry's fill contains the specified point.

2
src/Avalonia.Base/Media/GeometryDrawing.cs

@ -69,7 +69,7 @@ namespace Avalonia.Media
public override Rect GetBounds()
{
IPen pen = Pen ?? s_boundsPen;
return Geometry?.GetRenderBounds(pen) ?? Rect.Empty;
return Geometry?.GetRenderBounds(pen) ?? default;
}
}
}

2
src/Avalonia.Base/Media/GlyphRunDrawing.cs

@ -32,7 +32,7 @@
public override Rect GetBounds()
{
return GlyphRun != null ? new Rect(GlyphRun.Size) : Rect.Empty;
return GlyphRun != null ? new Rect(GlyphRun.Size) : default;
}
}
}

2
src/Avalonia.Base/Media/ImageDrawing.cs

@ -42,7 +42,7 @@ namespace Avalonia.Media
var imageSource = ImageSource;
var rect = Rect;
if (imageSource is object && !rect.IsEmpty)
if (imageSource is object && !rect.IsDefault)
{
context.DrawImage(imageSource, rect);
}

4
src/Avalonia.Base/Media/Imaging/CroppedBitmap.cs

@ -78,8 +78,8 @@ namespace Avalonia.Media.Imaging
get
{
if (Source is not IBitmap bmp)
return Size.Empty;
if (SourceRect.IsEmpty)
return default;
if (SourceRect.IsDefault)
return Source.Size;
return SourceRect.Size.ToSizeWithDpi(bmp.Dpi);
}

1
src/Avalonia.Base/Media/TextFormatting/FormattedTextSource.cs

@ -8,7 +8,6 @@ namespace Avalonia.Media.TextFormatting
internal readonly struct FormattedTextSource : ITextSource
{
private readonly CharacterBufferRange _text;
private readonly int length;
private readonly TextRunProperties _defaultProperties;
private readonly IReadOnlyList<ValueSpan<TextRunProperties>>? _textModifier;

4
src/Avalonia.Base/Media/TextFormatting/TextLineImpl.cs

@ -532,7 +532,7 @@ namespace Avalonia.Media.TextFormatting
var startX = Start;
double currentWidth = 0;
var currentRect = Rect.Empty;
var currentRect = default(Rect);
TextRunBounds lastRunBounds = default;
@ -748,7 +748,7 @@ namespace Avalonia.Media.TextFormatting
var startX = WidthIncludingTrailingWhitespace;
double currentWidth = 0;
var currentRect = Rect.Empty;
var currentRect = default(Rect);
for (var index = TextRuns.Count - 1; index >= 0; index--)
{

1
src/Avalonia.Base/Media/TextFormatting/Unicode/CodepointEnumerator.cs

@ -5,7 +5,6 @@ namespace Avalonia.Media.TextFormatting.Unicode
public ref struct CodepointEnumerator
{
private CharacterBufferRange _text;
private int _pos;
public CodepointEnumerator(CharacterBufferRange text)
{

15
src/Avalonia.Base/PixelRect.cs

@ -12,6 +12,7 @@ namespace Avalonia
/// <summary>
/// An empty rectangle.
/// </summary>
[Obsolete("Use the default keyword instead.")]
public static readonly PixelRect Empty = default;
/// <summary>
@ -133,9 +134,13 @@ namespace Avalonia
public PixelPoint Center => new PixelPoint(X + (Width / 2), Y + (Height / 2));
/// <summary>
/// Gets a value that indicates whether the rectangle is empty.
/// Gets a value indicating whether the instance has default values (the rectangle is empty).
/// </summary>
public bool IsEmpty => Width == 0 && Height == 0;
public bool IsDefault => Width == 0 && Height == 0;
/// <inheritdoc cref="IsDefault"/>
[Obsolete("Use IsDefault instead.")]
public bool IsEmpty => IsDefault;
/// <summary>
/// Checks for equality between two <see cref="PixelRect"/>s.
@ -257,7 +262,7 @@ namespace Avalonia
}
else
{
return Empty;
return default;
}
}
@ -290,11 +295,11 @@ namespace Avalonia
/// <returns>The union.</returns>
public PixelRect Union(PixelRect rect)
{
if (IsEmpty)
if (IsDefault)
{
return rect;
}
else if (rect.IsEmpty)
else if (rect.IsDefault)
{
return this;
}

21
src/Avalonia.Base/Rect.cs

@ -18,7 +18,8 @@ namespace Avalonia
/// <summary>
/// An empty rectangle.
/// </summary>
public static readonly Rect Empty = default(Rect);
[Obsolete("Use the default keyword instead.")]
public static readonly Rect Empty = default;
/// <summary>
/// The X position.
@ -169,12 +170,16 @@ namespace Avalonia
public Point Center => new Point(_x + (_width / 2), _y + (_height / 2));
/// <summary>
/// Gets a value that indicates whether the rectangle is empty.
/// Gets a value indicating whether the instance has default values (the rectangle is empty).
/// </summary>
// ReSharper disable CompareOfFloatsByEqualityOperator
public bool IsEmpty => _width == 0 && _height == 0;
public bool IsDefault => _width == 0 && _height == 0;
// ReSharper restore CompareOfFloatsByEqualityOperator
/// <inheritdoc cref="IsDefault"/>
[Obsolete("Use IsDefault instead.")]
public bool IsEmpty => IsDefault;
/// <summary>
/// Checks for equality between two <see cref="Rect"/>s.
/// </summary>
@ -390,7 +395,7 @@ namespace Avalonia
}
else
{
return Empty;
return default;
}
}
@ -457,13 +462,13 @@ namespace Avalonia
/// </remarks>
public Rect Normalize()
{
Rect rect = this;
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))
{
return Rect.Empty;
return default;
}
if (rect.Width < 0)
@ -493,11 +498,11 @@ namespace Avalonia
/// <returns>The union.</returns>
public Rect Union(Rect rect)
{
if (IsEmpty)
if (IsDefault)
{
return rect;
}
else if (rect.IsEmpty)
else if (rect.IsDefault)
{
return this;
}

2
src/Avalonia.Base/Rendering/Composition/Server/DrawingContextProxy.cs

@ -163,7 +163,7 @@ internal class CompositorDrawingContextProxy : IDrawingContextImpl, IDrawingCont
public CompositionDrawList? VisualBrushDrawList { get; set; }
public Size GetRenderTargetSize(IVisualBrush brush)
{
return VisualBrushDrawList?.Size ?? Size.Empty;
return VisualBrushDrawList?.Size ?? default;
}
public void RenderVisualBrush(IDrawingContextImpl context, IVisualBrush brush)

2
src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionDrawListVisual.cs

@ -37,7 +37,7 @@ internal class ServerCompositionDrawListVisual : ServerCompositionContainerVisua
{
if (_contentBounds == null)
{
var rect = Rect.Empty;
var rect = default(Rect);
if(_renderCommands!=null)
foreach (var cmd in _renderCommands)
rect = rect.Union(cmd.Item.Bounds);

8
src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionTarget.cs

@ -90,7 +90,7 @@ namespace Avalonia.Rendering.Composition.Server
Compositor.UpdateServerTime();
if(_dirtyRect.IsEmpty && !_redrawRequested)
if(_dirtyRect.IsDefault && !_redrawRequested)
return;
Revision++;
@ -119,7 +119,7 @@ namespace Avalonia.Rendering.Composition.Server
_dirtyRect = new Rect(0, 0, layerSize.Width, layerSize.Height);
}
if (!_dirtyRect.IsEmpty)
if (!_dirtyRect.IsDefault)
{
var visualBrushHelper = new CompositorDrawingContextProxy.VisualBrushRenderer();
using (var context = _layer.CreateDrawingContext(visualBrushHelper))
@ -162,7 +162,7 @@ namespace Avalonia.Rendering.Composition.Server
}
RenderedVisuals = 0;
_dirtyRect = Rect.Empty;
_dirtyRect = default;
}
}
@ -181,7 +181,7 @@ namespace Avalonia.Rendering.Composition.Server
public void AddDirtyRect(Rect rect)
{
if(rect.IsEmpty)
if(rect.IsDefault)
return;
var snapped = SnapToDevicePixels(rect, Scaling);
DebugEvents?.RectInvalidated(rect);

8
src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionVisual.cs

@ -37,7 +37,7 @@ namespace Avalonia.Rendering.Composition.Server
return;
currentTransformedClip = currentTransformedClip.Intersect(_combinedTransformedClipBounds);
if(currentTransformedClip.IsEmpty)
if(currentTransformedClip.IsDefault)
return;
Root!.RenderedVisuals++;
@ -139,7 +139,7 @@ namespace Avalonia.Rendering.Composition.Server
if (ownBounds != _oldOwnContentBounds || positionChanged)
{
_oldOwnContentBounds = ownBounds;
if (ownBounds.IsEmpty)
if (ownBounds.IsDefault)
TransformedOwnContentBounds = default;
else
TransformedOwnContentBounds =
@ -163,7 +163,7 @@ namespace Avalonia.Rendering.Composition.Server
EffectiveOpacity = Opacity * (Parent?.EffectiveOpacity ?? 1);
IsVisibleInFrame = _parent?.IsVisibleInFrame != false && Visible && EffectiveOpacity > 0.04 && !_isBackface &&
!_combinedTransformedClipBounds.IsEmpty;
!_combinedTransformedClipBounds.IsDefault;
if (wasVisible != IsVisibleInFrame || positionChanged)
{
@ -192,7 +192,7 @@ namespace Avalonia.Rendering.Composition.Server
void AddDirtyRect(Rect rc)
{
if(rc == Rect.Empty)
if(rc == default)
return;
Root?.AddDirtyRect(rc);
}

4
src/Avalonia.Base/Rendering/DeferredRenderer.cs

@ -311,7 +311,7 @@ namespace Avalonia.Rendering
/// <inheritdoc/>
Size IVisualBrushRenderer.GetRenderTargetSize(IVisualBrush brush)
{
return TryGetChildScene(_currentDraw)?.Size ?? Size.Empty;
return TryGetChildScene(_currentDraw)?.Size ?? default;
}
/// <inheritdoc/>
@ -463,7 +463,7 @@ namespace Avalonia.Rendering
{
clipBounds = node.ClipBounds.Intersect(clipBounds);
if (!clipBounds.IsEmpty && node.Opacity > 0)
if (!clipBounds.IsDefault && node.Opacity > 0)
{
var isLayerRoot = node.Visual == layer;

5
src/Avalonia.Base/Rendering/DirtyRects.cs

@ -10,6 +10,9 @@ namespace Avalonia.Rendering
{
private List<Rect> _rects = new List<Rect>();
/// <summary>
/// Gets a value indicating whether the collection of dirty rectangles is empty.
/// </summary>
public bool IsEmpty => _rects.Count == 0;
/// <summary>
@ -27,7 +30,7 @@ namespace Avalonia.Rendering
/// </remarks>
public void Add(Rect rect)
{
if (!rect.IsEmpty)
if (!rect.IsDefault)
{
for (var i = 0; i < _rects.Count; ++i)
{

4
src/Avalonia.Base/Rendering/ImmediateRenderer.cs

@ -138,7 +138,7 @@ namespace Avalonia.Rendering
/// <inheritdoc/>
public void AddDirty(Visual visual)
{
if (visual.Bounds != Rect.Empty)
if (!visual.Bounds.IsDefault)
{
var m = visual.TransformToVisual(_root);
@ -203,7 +203,7 @@ namespace Avalonia.Rendering
Size IVisualBrushRenderer.GetRenderTargetSize(IVisualBrush brush)
{
(brush.Visual as IVisualBrushInitialize)?.EnsureInitialized();
return brush.Visual?.Bounds.Size ?? Size.Empty;
return brush.Visual?.Bounds.Size ?? default;
}
/// <inheritdoc/>

2
src/Avalonia.Base/Rendering/SceneGraph/BitmapBlendModeNode.cs

@ -27,7 +27,7 @@ namespace Avalonia.Rendering.SceneGraph
}
/// <inheritdoc/>
public Rect Bounds => Rect.Empty;
public Rect Bounds => default;
/// <summary>
/// Gets the BitmapBlend to be pushed or null if the operation represents a pop.

2
src/Avalonia.Base/Rendering/SceneGraph/ClipNode.cs

@ -40,7 +40,7 @@ namespace Avalonia.Rendering.SceneGraph
}
/// <inheritdoc/>
public Rect Bounds => Rect.Empty;
public Rect Bounds => default;
/// <summary>
/// Gets the clip to be pushed or null if the operation represents a pop.

2
src/Avalonia.Base/Rendering/SceneGraph/GeometryClipNode.cs

@ -28,7 +28,7 @@ namespace Avalonia.Rendering.SceneGraph
}
/// <inheritdoc/>
public Rect Bounds => Rect.Empty;
public Rect Bounds => default;
/// <summary>
/// Gets the clip to be pushed or null if the operation represents a pop.

4
src/Avalonia.Base/Rendering/SceneGraph/OpacityMaskNode.cs

@ -19,7 +19,7 @@ namespace Avalonia.Rendering.SceneGraph
/// <param name="bounds">The bounds of the mask.</param>
/// <param name="aux">Auxiliary data required to draw the brush.</param>
public OpacityMaskNode(IBrush mask, Rect bounds, IDisposable? aux = null)
: base(Rect.Empty, Matrix.Identity, aux)
: base(default, Matrix.Identity, aux)
{
Mask = mask.ToImmutable();
MaskBounds = bounds;
@ -30,7 +30,7 @@ namespace Avalonia.Rendering.SceneGraph
/// opacity mask pop.
/// </summary>
public OpacityMaskNode()
: base(Rect.Empty, Matrix.Identity, null)
: base(default, Matrix.Identity, null)
{
}

2
src/Avalonia.Base/Rendering/SceneGraph/OpacityNode.cs

@ -26,7 +26,7 @@ namespace Avalonia.Rendering.SceneGraph
}
/// <inheritdoc/>
public Rect Bounds => Rect.Empty;
public Rect Bounds => default;
/// <summary>
/// Gets the opacity to be pushed or null if the operation represents a pop.

6
src/Avalonia.Base/Rendering/SceneGraph/SceneBuilder.cs

@ -331,8 +331,8 @@ namespace Avalonia.Rendering.SceneGraph
scene.Size = newSize;
Rect horizontalDirtyRect = Rect.Empty;
Rect verticalDirtyRect = Rect.Empty;
Rect horizontalDirtyRect = default;
Rect verticalDirtyRect = default;
if (newSize.Width > oldSize.Width)
{
@ -429,7 +429,7 @@ namespace Avalonia.Rendering.SceneGraph
else
{
layer.OpacityMask = null;
layer.OpacityMaskRect = Rect.Empty;
layer.OpacityMaskRect = default;
}
layer.GeometryClip = node.HasAncestorGeometryClip ?

8
src/Avalonia.Base/Size.cs

@ -28,8 +28,9 @@ namespace Avalonia
public static readonly Size Infinity = new Size(double.PositiveInfinity, double.PositiveInfinity);
/// <summary>
/// A size representing zero
/// A size representing zero.
/// </summary>
[Obsolete("Use the default keyword instead.")]
public static readonly Size Empty = new Size(0, 0);
/// <summary>
@ -309,9 +310,6 @@ namespace Avalonia
/// <summary>
/// Gets a value indicating whether the Width and Height values are zero.
/// </summary>
public bool IsDefault
{
get { return (_width == 0) && (_height == 0); }
}
public bool IsDefault => (_width == 0) && (_height == 0);
}
}

17
src/Avalonia.Base/Thickness.cs

@ -97,10 +97,9 @@ namespace Avalonia
/// </summary>
public double Bottom => _bottom;
/// <summary>
/// Gets a value indicating whether all sides are set to 0.
/// </summary>
public bool IsEmpty => Left.Equals(0) && IsUniform;
/// <inheritdoc cref="IsDefault"/>
[Obsolete("Use IsDefault instead.")]
public bool IsEmpty => IsDefault;
/// <summary>
/// Gets a value indicating whether all sides are equal.
@ -292,15 +291,13 @@ namespace Avalonia
left = this._left;
top = this._top;
right = this._right;
bottom = this._bottom;
bottom = this._bottom;
}
/// <summary>
/// Gets a value indicating whether the left, top, right and bottom thickness values are zero.
/// Gets a value indicating whether the instance has default values
/// (the left, top, right and bottom values are zero).
/// </summary>
public bool IsDefault
{
get { return (_left == 0) && (_top == 0) && (_right == 0) && (_bottom == 0); }
}
public bool IsDefault => (_left == 0) && (_top == 0) && (_right == 0) && (_bottom == 0);
}
}

5
src/Avalonia.Controls.DataGrid/DataGrid.cs

@ -48,7 +48,6 @@ namespace Avalonia.Controls
private const string DATAGRID_elementColumnHeadersPresenterName = "PART_ColumnHeadersPresenter";
private const string DATAGRID_elementFrozenColumnScrollBarSpacerName = "PART_FrozenColumnScrollBarSpacer";
private const string DATAGRID_elementHorizontalScrollbarName = "PART_HorizontalScrollbar";
private const string DATAGRID_elementRowHeadersPresenterName = "PART_RowHeadersPresenter";
private const string DATAGRID_elementTopLeftCornerHeaderName = "PART_TopLeftCornerHeader";
private const string DATAGRID_elementTopRightCornerHeaderName = "PART_TopRightCornerHeader";
private const string DATAGRID_elementBottomRightCornerHeaderName = "PART_BottomRightCorner";
@ -1124,7 +1123,7 @@ namespace Avalonia.Controls
EnsureColumnHeadersVisibility();
if (!newValueCols)
{
_columnHeadersPresenter.Measure(Size.Empty);
_columnHeadersPresenter.Measure(default(Size));
}
else
{
@ -1165,7 +1164,7 @@ namespace Avalonia.Controls
_topLeftCornerHeader.IsVisible = newValueRows && newValueCols;
if (_topLeftCornerHeader.IsVisible)
{
_topLeftCornerHeader.Measure(Size.Empty);
_topLeftCornerHeader.Measure(default(Size));
}
}

4
src/Avalonia.Controls.DataGrid/DataGridCheckBoxColumn.cs

@ -192,14 +192,14 @@ namespace Avalonia.Controls
void OnLayoutUpdated(object sender, EventArgs e)
{
if(!editingCheckBox.Bounds.IsEmpty)
if(!editingCheckBox.Bounds.IsDefault)
{
editingCheckBox.LayoutUpdated -= OnLayoutUpdated;
ProcessPointerArgs();
}
}
if(editingCheckBox.Bounds.IsEmpty)
if(editingCheckBox.Bounds.IsDefault)
{
editingCheckBox.LayoutUpdated += OnLayoutUpdated;
}

1
src/Avalonia.Controls.DataGrid/DataGridColumnHeader.cs

@ -34,7 +34,6 @@ namespace Avalonia.Controls
}
private const int DATAGRIDCOLUMNHEADER_resizeRegionWidth = 5;
private const double DATAGRIDCOLUMNHEADER_separatorThickness = 1;
private const int DATAGRIDCOLUMNHEADER_columnsDragTreshold = 5;
private bool _areHandlersSuspended;

2
src/Avalonia.Controls.DataGrid/DataGridRowHeader.cs

@ -18,8 +18,6 @@ namespace Avalonia.Controls.Primitives
public class DataGridRowHeader : ContentControl
{
private const string DATAGRIDROWHEADER_elementRootName = "PART_Root";
private const double DATAGRIDROWHEADER_separatorThickness = 1;
private Control _rootElement;
public static readonly StyledProperty<IBrush> SeparatorBrushProperty =

2
src/Avalonia.Controls.DataGrid/Primitives/DataGridCellsPresenter.cs

@ -161,7 +161,7 @@ namespace Avalonia.Controls.Primitives
{
// Clip
RectangleGeometry rg = new RectangleGeometry();
rg.Rect = Rect.Empty;
rg.Rect = default;
cell.Clip = rg;
}
}

2
src/Avalonia.Controls.DataGrid/Primitives/DataGridColumnHeadersPresenter.cs

@ -305,7 +305,7 @@ namespace Avalonia.Controls.Primitives
}
if (!OwningGrid.AreColumnHeadersVisible)
{
return Size.Empty;
return default;
}
double height = OwningGrid.ColumnHeaderHeight;
bool autoSizeHeight;

2
src/Avalonia.Controls.DataGrid/Primitives/DataGridDetailsPresenter.cs

@ -112,7 +112,7 @@ namespace Avalonia.Controls.Primitives
{
if (OwningGrid == null || Children.Count == 0)
{
return Size.Empty;
return default;
}
double desiredWidth = OwningGrid.AreRowDetailsFrozen ?

4
src/Avalonia.Controls/Flyouts/FlyoutBase.cs

@ -435,7 +435,7 @@ namespace Avalonia.Controls.Primitives
{
Size sz;
// Popup.Child can't be null here, it was set in ShowAtCore.
if (Popup.Child!.DesiredSize == Size.Empty)
if (Popup.Child!.DesiredSize.IsDefault)
{
// Popup may not have been shown yet. Measure content
sz = LayoutHelper.MeasureChild(Popup.Child, Size.Infinity, new Thickness());
@ -457,7 +457,7 @@ namespace Avalonia.Controls.Primitives
PopupPositioning.PopupPositionerConstraintAdjustment.SlideY;
}
var trgtBnds = Target?.Bounds ?? Rect.Empty;
var trgtBnds = Target?.Bounds ?? default;
switch (Placement)
{

10
src/Avalonia.Controls/LayoutTransformControl.cs

@ -91,7 +91,7 @@ namespace Avalonia.Controls
arrangedsize = TransformRoot.Bounds.Size;
// This is the first opportunity under Silverlight to find out the Child's true DesiredSize
if (IsSizeSmaller(finalSizeTransformed, arrangedsize) && (Size.Empty == _childActualSize))
if (IsSizeSmaller(finalSizeTransformed, arrangedsize) && _childActualSize.IsDefault)
{
//// Unfortunately, all the work so far is invalid because the wrong DesiredSize was used
//// Make a note of the actual DesiredSize
@ -102,7 +102,7 @@ namespace Avalonia.Controls
else
{
// Clear the "need to measure/arrange again" flag
_childActualSize = Size.Empty;
_childActualSize = default;
}
// Return result to perform the transformation
@ -122,7 +122,7 @@ namespace Avalonia.Controls
}
Size measureSize;
if (_childActualSize == Size.Empty)
if (_childActualSize.IsDefault)
{
// Determine the largest size after the transformation
measureSize = ComputeLargestTransformedSize(availableSize);
@ -206,7 +206,7 @@ namespace Avalonia.Controls
/// <summary>
/// Actual DesiredSize of Child element (the value it returned from its MeasureOverride method).
/// </summary>
private Size _childActualSize = Size.Empty;
private Size _childActualSize = default;
/// <summary>
/// RenderTransform/MatrixTransform applied to TransformRoot.
@ -281,7 +281,7 @@ namespace Avalonia.Controls
private Size ComputeLargestTransformedSize(Size arrangeBounds)
{
// Computed largest transformed size
Size computedSize = Size.Empty;
Size computedSize = default;
// Detect infinite bounds and constrain the scenario
bool infiniteWidth = double.IsInfinity(arrangeBounds.Width);

2
src/Avalonia.Controls/NativeControlHost.cs

@ -145,7 +145,7 @@ namespace Avalonia.Controls
if (IsEffectivelyVisible && bounds.HasValue)
{
if (bounds.Value.IsEmpty)
if (bounds.Value.IsDefault)
return false;
_attachment?.ShowInBounds(bounds.Value);
}

6
src/Avalonia.Controls/Presenters/ItemsPresenter.cs

@ -77,7 +77,7 @@ namespace Avalonia.Controls.Presenters
}
/// <inheritdoc/>
Size IScrollable.Extent => Virtualizer?.Extent ?? Size.Empty;
Size IScrollable.Extent => Virtualizer?.Extent ?? default;
/// <inheritdoc/>
Vector IScrollable.Offset
@ -136,12 +136,12 @@ namespace Avalonia.Controls.Presenters
/// <inheritdoc/>
protected override Size MeasureOverride(Size availableSize)
{
return Virtualizer?.MeasureOverride(availableSize) ?? Size.Empty;
return Virtualizer?.MeasureOverride(availableSize) ?? default;
}
protected override Size ArrangeOverride(Size finalSize)
{
return Virtualizer?.ArrangeOverride(finalSize) ?? Size.Empty;
return Virtualizer?.ArrangeOverride(finalSize) ?? default;
}
/// <inheritdoc/>

1
src/Avalonia.Controls/Presenters/TextPresenter.cs

@ -106,7 +106,6 @@ namespace Avalonia.Controls.Presenters
private Rect _caretBounds;
private Point _navigationPosition;
private string? _preeditText;
private CharacterHit _compositionStartHit = new CharacterHit(-1);
static TextPresenter()
{

2
src/Avalonia.Controls/Primitives/PopupPositioning/ManagedPopupPositioner.cs

@ -112,7 +112,7 @@ namespace Avalonia.Controls.Primitives.PopupPositioning
?? screens.FirstOrDefault(s => s.Bounds.Intersects(parentGeometry))
?? screens.FirstOrDefault();
if (targetScreen != null && targetScreen.WorkingArea.IsEmpty)
if (targetScreen != null && targetScreen.WorkingArea.IsDefault)
{
return targetScreen.Bounds;
}

2
src/Avalonia.Controls/Primitives/SelectingItemsControl.cs

@ -119,8 +119,6 @@ namespace Avalonia.Controls.Primitives
/// </summary>
public static readonly StyledProperty<bool> WrapSelectionProperty =
AvaloniaProperty.Register<SelectingItemsControl, bool>(nameof(WrapSelection), defaultValue: false);
private static readonly IList Empty = Array.Empty<object>();
private string _textSearchTerm = string.Empty;
private DispatcherTimer? _textSearchTimer;
private ISelectionModel? _selection;

4
src/Avalonia.Controls/Repeater/ViewportManager.cs

@ -465,7 +465,7 @@ namespace Avalonia.Controls
_pendingViewportShift = default;
_unshiftableShift = default;
if (_visibleWindow.IsEmpty)
if (_visibleWindow.IsDefault)
{
// We got cleared.
_layoutExtent = default;
@ -551,7 +551,7 @@ namespace Avalonia.Controls
private void TryInvalidateMeasure()
{
// Don't invalidate measure if we have an invalid window.
if (!_visibleWindow.IsEmpty)
if (!_visibleWindow.IsDefault)
{
// We invalidate measure instead of just invalidating arrange because
// we don't invalidate measure in UpdateViewport if the view is changing to

2
src/Avalonia.Controls/Shapes/Shape.cs

@ -292,7 +292,7 @@ namespace Avalonia.Controls.Shapes
return finalSize;
}
return Size.Empty;
return default;
}
internal static (Size size, Matrix transform) CalculateSizeAndTransform(Size availableSize, Rect shapeBounds, Stretch Stretch)

6
src/Avalonia.Controls/Window.cs

@ -169,10 +169,6 @@ namespace Avalonia.Controls
/// </summary>
public static readonly RoutedEvent<RoutedEventArgs> WindowOpenedEvent =
RoutedEvent.Register<Window, RoutedEventArgs>("WindowOpened", RoutingStrategies.Direct);
private readonly NameScope _nameScope = new NameScope();
private object? _dialogResult;
private readonly Size _maxPlatformClientSize;
private WindowStartupLocation _windowStartupLocation;
@ -235,7 +231,7 @@ namespace Avalonia.Controls
impl.GotInputWhenDisabled = OnGotInputWhenDisabled;
impl.WindowStateChanged = HandleWindowStateChanged;
_maxPlatformClientSize = PlatformImpl?.MaxAutoSizeHint ?? default(Size);
impl.ExtendClientAreaToDecorationsChanged = ExtendClientAreaToDecorationsChanged;
impl.ExtendClientAreaToDecorationsChanged = ExtendClientAreaToDecorationsChanged;
this.GetObservable(ClientSizeProperty).Skip(1).Subscribe(x => PlatformImpl?.Resize(x, PlatformResizeReason.Application));
PlatformImpl?.ShowTaskbarIcon(ShowInTaskbar);

3
src/Avalonia.Diagnostics/Diagnostics/Controls/Application.cs

@ -10,8 +10,7 @@ namespace Avalonia.Diagnostics.Controls
{
private readonly App _application;
private static readonly Version s_version = typeof(AvaloniaObject).Assembly?.GetName()?.Version
?? Version.Parse("0.0.00");
public event EventHandler? Closed;
public Application(App application)

2
src/Avalonia.Headless/HeadlessPlatformRenderInterface.cs

@ -215,7 +215,7 @@ namespace Avalonia.Headless
class HeadlessStreamingGeometryStub : HeadlessGeometryStub, IStreamGeometryImpl
{
public HeadlessStreamingGeometryStub() : base(Rect.Empty)
public HeadlessStreamingGeometryStub() : base(default)
{
}

3
src/Avalonia.Native/ClipboardImpl.cs

@ -15,8 +15,7 @@ namespace Avalonia.Native
private IAvnClipboard _native;
private const string NSPasteboardTypeString = "public.utf8-plain-text";
private const string NSFilenamesPboardType = "NSFilenamesPboardType";
private const string NSPasteboardTypeFileUrl = "public.file-url";
public ClipboardImpl(IAvnClipboard native)
{
_native = native;

1
src/Avalonia.Native/IAvnMenu.cs

@ -46,7 +46,6 @@ namespace Avalonia.Native.Interop.Impl
private AvaloniaNativeMenuExporter _exporter;
private List<__MicroComIAvnMenuItemProxy> _menuItems = new List<__MicroComIAvnMenuItemProxy>();
private Dictionary<NativeMenuItemBase, __MicroComIAvnMenuItemProxy> _menuItemLookup = new Dictionary<NativeMenuItemBase, __MicroComIAvnMenuItemProxy>();
private CompositeDisposable _propertyDisposables = new CompositeDisposable();
public void RaiseNeedsUpdate()
{

1
src/Avalonia.Native/WindowImplBase.cs

@ -63,7 +63,6 @@ namespace Avalonia.Native
private double _savedScaling;
private GlPlatformSurface _glSurface;
private NativeControlHostImpl _nativeControlHost;
private IGlContext _glContext;
internal WindowBaseImpl(IAvaloniaNativeFactory factory, AvaloniaNativePlatformOptions opts,
AvaloniaNativeGlPlatformGraphics glFeature)

2
src/Avalonia.X11/X11Clipboard.cs

@ -18,8 +18,6 @@ namespace Avalonia.X11
private TaskCompletionSource<object> _requestedDataTcs;
private readonly IntPtr[] _textAtoms;
private readonly IntPtr _avaloniaSaveTargetsAtom;
private readonly Dictionary<string, IntPtr> _formatAtoms = new Dictionary<string, IntPtr>();
private readonly Dictionary<IntPtr, string> _atomFormats = new Dictionary<IntPtr, string>();
public X11Clipboard(AvaloniaX11Platform platform)
{

6
src/Browser/Avalonia.Browser/BrowserNativeControlHost.cs

@ -55,12 +55,6 @@ namespace Avalonia.Browser
private class Attachment : INativeControlHostControlTopLevelAttachment
{
private const string InitializeWithChildHandleSymbol = "InitializeWithChildHandle";
private const string AttachToSymbol = "AttachTo";
private const string ShowInBoundsSymbol = "ShowInBounds";
private const string HideWithSizeSymbol = "HideWithSize";
private const string ReleaseChildSymbol = "ReleaseChild";
private JSObject? _native;
private BrowserNativeControlHost? _attachedTo;

2
src/Browser/Avalonia.Browser/WebEmbeddableControlRoot.cs

@ -18,7 +18,7 @@ namespace Avalonia.Browser
_onFirstRender = onFirstRender;
}
public Rect Bounds => Rect.Empty;
public Rect Bounds => default;
public bool HasRendered => _hasRendered;

2
src/Linux/Avalonia.LinuxFramebuffer/Input/EvDev/EvDevBackend.cs

@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Threading;
using Avalonia.Input;
using Avalonia.Input.Raw;
using Avalonia.Threading;
using static Avalonia.LinuxFramebuffer.NativeUnsafeMethods;
namespace Avalonia.LinuxFramebuffer.Input.EvDev
@ -13,7 +12,6 @@ namespace Avalonia.LinuxFramebuffer.Input.EvDev
private readonly EvDevDeviceDescription[] _deviceDescriptions;
private readonly List<EvDevDeviceHandler> _handlers = new List<EvDevDeviceHandler>();
private int _epoll;
private object _lock = new object();
private Action<RawInputEventArgs> _onInput;
private IInputRoot _inputRoot;
private RawEventGroupingThreadingHelper _inputQueue;

1
src/Linux/Avalonia.LinuxFramebuffer/Input/LibInput/LibInputBackend.cs

@ -11,7 +11,6 @@ namespace Avalonia.LinuxFramebuffer.Input.LibInput
{
private IScreenInfoProvider _screen;
private IInputRoot _inputRoot;
private readonly Queue<Action> _inputThreadActions = new Queue<Action>();
private TouchDevice _touch = new TouchDevice();
private const string LibInput = nameof(Avalonia.LinuxFramebuffer) + "/" + nameof(Avalonia.LinuxFramebuffer.Input) + "/" + nameof(LibInput);
private readonly RawEventGroupingThreadingHelper _inputQueue;

4
src/Skia/Avalonia.Skia/DrawingContextImpl.cs

@ -362,7 +362,7 @@ namespace Avalonia.Skia
foreach (var boxShadow in boxShadows)
{
if (!boxShadow.IsEmpty && !boxShadow.IsInset)
if (!boxShadow.IsDefault && !boxShadow.IsInset)
{
using (var shadow = BoxShadowFilter.Create(_boxShadowPaint, boxShadow, _currentOpacity))
{
@ -418,7 +418,7 @@ namespace Avalonia.Skia
foreach (var boxShadow in boxShadows)
{
if (!boxShadow.IsEmpty && boxShadow.IsInset)
if (!boxShadow.IsDefault && boxShadow.IsInset)
{
using (var shadow = BoxShadowFilter.Create(_boxShadowPaint, boxShadow, _currentOpacity))
{

2
src/Skia/Avalonia.Skia/GeometryImpl.cs

@ -244,7 +244,7 @@ namespace Avalonia.Skia
public void Invalidate()
{
CachedStrokePath?.Dispose();
CachedGeometryRenderBounds = Rect.Empty;
CachedGeometryRenderBounds = default;
_cachedStrokeWidth = default(float);
}
}

2
src/Skia/Avalonia.Skia/StreamGeometryImpl.cs

@ -34,7 +34,7 @@ namespace Avalonia.Skia
/// <summary>
/// Initializes a new instance of the <see cref="StreamGeometryImpl"/> class.
/// </summary>
public StreamGeometryImpl() : this(CreateEmptyPath(), Rect.Empty)
public StreamGeometryImpl() : this(CreateEmptyPath(), default)
{
}

2
src/Windows/Avalonia.Win32/Interop/Automation/UiaCoreTypesApi.cs

@ -6,8 +6,6 @@ namespace Avalonia.Win32.Interop.Automation
{
internal static class UiaCoreTypesApi
{
private const string StartListeningExportName = "SynchronizedInputPattern_StartListening";
internal enum AutomationIdType
{
Property,

2
src/Windows/Avalonia.Win32/WindowImpl.cs

@ -1343,8 +1343,6 @@ namespace Avalonia.Win32
}
private const int MF_BYCOMMAND = 0x0;
private const int MF_BYPOSITION = 0x400;
private const int MF_REMOVE = 0x1000;
private const int MF_ENABLED = 0x0;
private const int MF_GRAYED = 0x1;
private const int MF_DISABLED = 0x2;

2
tests/Avalonia.Base.UnitTests/RectTests.cs

@ -52,7 +52,7 @@ namespace Avalonia.Base.UnitTests
double.PositiveInfinity, double.PositiveInfinity)
.Normalize();
Assert.Equal(Rect.Empty, result);
Assert.Equal(default, result);
}
}
}

4
tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs

@ -403,7 +403,7 @@ namespace Avalonia.Base.UnitTests.Rendering
root.Measure(Size.Infinity);
root.Arrange(new Rect(container.DesiredSize));
root.Renderer.Paint(Rect.Empty);
root.Renderer.Paint(default);
var result = root.Renderer.HitTest(new Point(50, 150), root, null).First();
Assert.Equal(item1, result);
@ -419,7 +419,7 @@ namespace Avalonia.Base.UnitTests.Rendering
container.InvalidateArrange();
container.Arrange(new Rect(container.DesiredSize));
root.Renderer.Paint(Rect.Empty);
root.Renderer.Paint(default);
result = root.Renderer.HitTest(new Point(50, 150), root, null).First();
Assert.Equal(item2, result);

4
tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/DrawOperationTests.cs

@ -13,9 +13,9 @@ namespace Avalonia.Base.UnitTests.Rendering.SceneGraph
[Fact]
public void Empty_Bounds_Remain_Empty()
{
var target = new TestDrawOperation(Rect.Empty, Matrix.Identity, null);
var target = new TestDrawOperation(default, Matrix.Identity, null);
Assert.Equal(Rect.Empty, target.Bounds);
Assert.Equal(default, target.Bounds);
}
[Theory]

4
tests/Avalonia.Controls.UnitTests/Presenters/ItemsPresenterTests_Virtualization_Simple.cs

@ -569,8 +569,8 @@ namespace Avalonia.Controls.UnitTests.Presenters
var target = CreateTarget(itemCount: 10);
var items = (IList<string>)target.Items;
target.ApplyTemplate();
target.Measure(Size.Empty);
target.Arrange(Rect.Empty);
target.Measure(default(Size));
target.Arrange(default);
// Check for issue #591: this should not throw.
target.ScrollIntoView(0);

2
tests/Avalonia.Controls.UnitTests/Shapes/RectangleTests.cs

@ -18,7 +18,7 @@ namespace Avalonia.Controls.UnitTests.Shapes
target.Measure(new Size(100, 100));
var geometry = Assert.IsType<RectangleGeometry>(target.RenderedGeometry);
Assert.Equal(Rect.Empty, geometry.Rect);
Assert.Equal(default, geometry.Rect);
}
[Fact]

Loading…
Cancel
Save