* Ported the old Vulkan PR
* chop-chop
* Support for external objects in vulkan backend
* Fixed structure type
* Removed debug code
* sln fix
* Don't force vulkan on windows
* Fixed ShowGridLines = false crash
Fixed "System.InvalidOperationException: 'The control GridLinesRenderer already has a visual parent Grid (Name = grid) while trying to add it as a child of Grid (Name = grid).'" when set ShowGridLines = false and resize.
* Fixed grid lines renderer (fixes ShowGridLines binding)
When changing ShowGridLines property GridLinesRenderer is not updating (create/remove/set bounds). Need to call InvalidateArrange -> ArrangeOverride -> EnsureGridLinesRenderer.
* Fix native menu bar tooltip
* Make ToolTip tests more reliable
* Increase MacOS_Native_Menu_Has_ToolTip_If_Defined sleep delay
* Disable MacOS_Native_Menu_Has_ToolTip_If_Defined, as it fails way too often
* Reduce allocations in XamlIlRuntimeHelpers
* Iterate XAML parents without allocations
* Use IDeferredContent for XAML deferred content to reduce allocations
* Use function pointer in DeferredTransformationFactory
* Reuse parent resource nodes if possible for deferred content
* Fix function pointer usage with SRE
Make `SelectionModel.SelectedItems` and `SelectionModel.SelectedIndexes` implement `INotifyCollectionChanged` so that they can be bound to.
As well as implementing `INotifyCollectionChanged` on the collections, we also had to implement `IList` (see #8764) so refactored this out into a base class.
For the sake of simplicity, these collections only raise `Reset` for any change: this is may need to be changed later but I'd rather follow the KISS principle for the moment until something more complex is proven necessary.
Fixes#15497
* Add Popup.SetPopupParent helper method
* Update Tooltip to use Popup internally instead of PopupRoot
* Mark OverlayPopupHost.CreatePopupHost as unstable method
* Close tooltip when popup is closed
* Fix popups not closing when target is detached
* Remove unrelated change
* Add more tests for ScrollIntoView.
* Improve ScrollIntoView.
Take into account the element we're scrolling to when calculating the anchor element for realization.
* feat: Add API for fetching window Z-order
* Addressed PR comments
* Improve X11Window::ZOrder implementation to avoid traversing windows that are not required to compute z-order
* Move zOrder API from Window to IWindowingPlatform
* Revert "Addressed PR comments"
This reverts commit 691541adf6.
* Rename
* Missing methods
* Move GetWindowsZOrder from IWindowingPlatform to IWindowImpl
* Cleanup
* Move SortWindowsByZOrder to Window class as a static method
* Implement zOrder for HeadlessWindowImpl
---------
Co-authored-by: Max Katz <maxkatz6@outlook.com>
* Use 2.88.8-preview.1.1 skiasharp
* Use SKImageFilter directly, as we don't need compat anymore
* Add SkiaSharp 3 render tests
* Enable SkiaSharp 3 tests on CI
* Add IncludeLinuxSkia in Skia tests
* Update Skia version, remove SkiaCompat
* Remove Skia3 test project, reuse single Skia render test project, so they won't conflict
* Use 0.2 seconds for input starvation cutoff.
1 second was too long when running on resource-constrained devices.
* Allow input starvation code to run.
Using `ScheduleRender(true)` here prevented the input starvation code from running.
* Add DispatcherOptions.
And allow setting the input starvation timeout there.
* Don't call dispatcher shutdown, when app shutdown was cancelled
* Assert Dispatcher.UIThread.ShutdownStarted in TryShutdown_Cancellable_By_Preventing_Window_Close
NCrunch does not support supplying target frameworks as MSBuild properties, so had to go through each of the ncrunch project files and specify the TFM explicitly.
* upgrade `Quamotion.RemoteViewing` to 1.1.211 to work with `RealVNC Viewer`
* change AfterSetup to AfterApplicationSetup
* remove netstandard2.0 as latest Quamotion.RemoteViewing doest not support it.
* downgrade RemoteViewer to 1.1.179 to work with netstandard2.0; remove ILogger parameter use Avalonia.Logging.Logger instead.
* adding password method overload to avoid binary break change.
Check KeySymbol before return null in TryCreateRawKeyEventArgs to prevent skipping cultural character.
Co-authored-by: CKPhong <phong.chung@itd.com.vn>