* Improved: D3D11 Adapter Creation Speed from ~50ms to basically 0
* Fixed: This is supposed to call software renderer, as per PR description.
* Added: Secondary Fallback in case Software Fails too.
* Added failing cross test.
For polyline segment with `IsStroked = false`.
* Fixed some issues with non-stroked segments
* Fix CombinedGeometryImpl with empty paths.
If an empty (but non-null) stroke was passed to `CombinedGeometryImpl` then its empty bounds would be used and the fill bounds ignored. Added a test and fixed that.
---------
Co-authored-by: Nikita Tsukanov <keks9n@gmail.com>
* Make resizing work again
* Fix various DOM events on multithreading
* Refactor WASM input to work with multithreading
* Minor improvements for drag n drop
* Use Microsoft.NET.Sdk.WebAssembly in control catalog browser
* Shortcut resolved exports
* Fix DomHelper.GetCurrentDocumentVisibility not working
* Fix embed sample
* Remove ManualTriggerRenderTimer
* Use pre-saved globalThis instance to make sure that JSImport interop works on a correct threading context
* Implement managed dispatcher for browser with event grouping
* Fix InputHelper.GetCoalescedEvents usage
* Nits after review
* Add font table loading
* Add localized family names
* Adjust license reference
* Add support for localized family names to the FontManager
* Add supported font features list
* Add unit test
* Fix font metrics
* Fix TextLineImpl baseline calculation of drawable runs
* Invert InlineRun baseline
* Adjust drawable run ascent offset calculation
* Use UnconditionalSuppressMessage instead of #pragma in DefaultConverter
* Add missing DynamicallyAccessedMembers on WinRTInspectable
* Add missing UnconditionalSuppressMessage on Expression.OperatorName
* Use UnconditionalSuppressMessage instead of #pragma warning disable for all trimming warnings
* Don't even create ReflectionMethodAccessorPlugin if IsDynamicCodeSupported is false
* Remove old condition, as we are ready to be fully AOT compatible
#14982 added some logic from WPF to contrain a window showed with `WindowStartupLocation.CenterOwner` to the screen, but it had a bug: the screen used was the screen that the window being _shown) is currently on, not the _owner_ window.
This means that if the owner window is on a different screen to the window being shown then it will be constrained to the wrong screen.
You can see this on Windows by showing a child `Window` with `CenterOwner` when the owner window is on a secondary screen: the child window will initially be shown on the primary screen and so the constraint will be wrong, resulting in the child window being shown on the wrong screen.
* Adding KeyGestureFormatInfo to hold platform specific Key/Modifier Strings when performing KeyGesture.ToString()
* Implementing KeyGesture IFormattable using new KeyGestureFormatInfo
* Adding platform specific registrations of KeyGestureFormatInfo
* Using KeyGesture's new IFormattable interface to use platform specific formatting.
* Documenting changes.
* Documenting changes.
* Putting back ToPlatformString() so I don't break the API.
* Swapping Page Up and Page Down symbols on Apple platforms.
* Changing KeyGestureFormatInfo constructor Dictionary parameter to IReadOnlyDictionary along with moving Arrow key and Backspace key overrides to the common dictionary. Only Apple platforms are now overriding Keys explicitly.
* Undoing addition to MenuPage that was never intended to be committed.
* [Android] fix a bug which cause closing soft keyboard does not clear focus on TextBox, which makes clicking on the TextBox cannot call out the soft keyboard again
* change way to show soft keyboard
* add new api
---------
Co-authored-by: Max Katz <maxkatz6@outlook.com>
* Try to normalize family names in case some known name is included in the requested family name
* Implicit Typeface loading
* Avoid null family names
* Fix system font collection
* Fix unit tests on macOS
* Fix duplicated trimming attributes warning in Markup.Xaml.Loader
* Fix nullability warnings
* Update ImageSharp to 2.1.8
* Removed obsolete attributes on ValueStore
* Ignore CA1815 on private API RenderTargetProperties
* Fix switch expression warnings
* Fix warnings in Vulkan project
* Only include PThread for WasmEnableThreads
* Rename pollfd to PollFd to fix CS8981
* Fix incompatible packages being used in ControlCatalog.Desktop
---------
Co-authored-by: Max Katz <maxkatz6@outlook.com>
* Add failing KeySpline tests
* Fix Animator for progress values less than zero
---------
Co-authored-by: Jumar Macato <16554748+jmacato@users.noreply.github.com>
* Added failing test for #15201.
* Handle nested BindingNotifications.
When #13970 was written, [a check](https://github.com/AvaloniaUI/Avalonia/pull/13970/files#diff-cfb25a491b9452e1815aa2c0d71465aaf81e99792a88a04a1a2ed572fd1930ffR60) was added to ensure that nested `BindingNotification`s didn't happen, and the refactor was written with the assumption that they wouldn't happen.
The problem is that they _do_ happen: when a source object implements both `INotifyDataErrorInfo` and had data annotations, then the nested data validation plugins would each wrap the value coming from the previous plugin in a new `BindingNotification`, resulting in nested `BindingNotifications`.
This adds support for nested binding notifications back in - even though IMO nesting binding notifications is a bug, if we're doing it and we previously supported it then we should continue to support it.
Fixes#15201
* Added failing tests for #15081.
* Provide target property in BindingExpression ctor.
Usually it is not necessary to provide the target property when creating a `BindingExpression` because the property will be assigned when the binding expression is attached to the target in `BindingExpressionBase.Attach`.
This is however one case where `Attach` is not called: when the obsolete `binding.Initiate` method is called and then an observable is read from the `InstancedBinding` without the binding actually being attached to the target object. In this case, prior to the binding refactor in #13970 the value produced by the observable was still converted to the target type. After #13970, because the target property (and hence the target type) is not yet set, the conversion is to the target type is no longer done.
`DataGrid` uses this obsolete method when editing cells, causing #15081. Ideally we'd fix that in `DataGrid` but I'm not happy making this change so close to 11.1, so instead fix this use-case to behave as before.
Fixes#15081