Avalonia
Avalonia copied to clipboard
Crash when minimizing on Windows 10: System.InvalidOperationException: Invalid Arrange rectangle
Describe the bug User reported bug, full description here: https://github.com/sn4k3/UVtools/issues/515 Happens after minimize or change task.
System.InvalidOperationException: Invalid Arrange rectangle.
at Avalonia.Layout.Layoutable.Arrange(Rect rect) in /_/src/Avalonia.Layout/Layoutable.cs:line 396
at Avalonia.Controls.Canvas.ArrangeOverride(Size finalSize) in /_/src/Avalonia.Controls/Canvas.cs:line 202
at Avalonia.Layout.Layoutable.ArrangeCore(Rect finalRect) in /_/src/Avalonia.Layout/Layoutable.cs:line 676
at Avalonia.Layout.Layoutable.Arrange(Rect rect) in /_/src/Avalonia.Layout/Layoutable.cs:line 396
at Avalonia.Layout.LayoutManager.Arrange(ILayoutable control) in /_/src/Avalonia.Layout/LayoutManager.cs:line 308
at Avalonia.Layout.LayoutManager.ExecuteArrangePass() in /_/src/Avalonia.Layout/LayoutManager.cs:line 277
at Avalonia.Layout.LayoutManager.InnerLayoutPass() in /_/src/Avalonia.Layout/LayoutManager.cs:line 251
at Avalonia.Layout.LayoutManager.ExecuteLayoutPass() in /_/src/Avalonia.Layout/LayoutManager.cs:line 171
at Avalonia.Threading.JobRunner.RunJobs(Nullable`1 priority) in /_/src/Avalonia.Base/Threading/JobRunner.cs:line 37
at Avalonia.Win32.Win32Platform.WndProc(IntPtr hWnd, UInt32 msg, IntPtr wParam, IntPtr lParam) in /_/src/Windows/Avalonia.Win32/Win32Platform.cs:line 283
at Avalonia.Win32.Interop.UnmanagedMethods.DispatchMessage(MSG& lpmsg)
at Avalonia.Win32.Win32Platform.RunLoop(CancellationToken cancellationToken) in /_/src/Windows/Avalonia.Win32/Win32Platform.cs:line 210
at Avalonia.Threading.Dispatcher.MainLoop(CancellationToken cancellationToken) in /_/src/Avalonia.Base/Threading/Dispatcher.cs:line 65
at Avalonia.Controls.ApplicationLifetimes.ClassicDesktopStyleApplicationLifetime.Start(String[] args) in /_/src/Avalonia.Controls/ApplicationLifetimes/ClassicDesktopStyleApplicationLifetime.cs:line 120
at Avalonia.ClassicDesktopStyleApplicationLifetimeExtensions.StartWithClassicDesktopLifetime[T](T builder, String[] args, ShutdownMode shutdownMode) in /_/src/Avalonia.Controls/ApplicationLifetimes/ClassicDesktopStyleApplicationLifetime.cs:line 209
at UVtools.WPF.Program.Main(String[] args) in D:\Tiago\Dropbox\Programming\C#\UVtools\UVtools.WPF\Program.cs:line 70
Category: Application
To Reproduce
- Change task
- Minimize window
Desktop (please complete the following information):
- Operative system: Microsoft Windows 10.0.19044 X64
- Processor: Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
- Memory RAM: 5.54 / 15.89 GB
- Runtime: win10-x64
- Framework: .NET 6.0.7
- AvaloniaUI: 0.10.16
Additional context I can't reproduce this in my machine (Windows 11).
It seems it can crash when canvas' child position or size is negative or infinite or NaN as per https://github.com/AvaloniaUI/Avalonia/blob/master/src/Avalonia.Base/Layout/Layoutable.cs#L841-L845
Looking at Canvas source code, probably DesiredSize of the child is wrong or it uses Canvas.Right/Bottom and position results in negative value https://github.com/AvaloniaUI/Avalonia/blob/master/src/Avalonia.Controls/Canvas.cs#L167-L202.