* 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 more tests for ScrollIntoView.
* Improve ScrollIntoView.
Take into account the element we're scrolling to when calculating the anchor element for realization.
* Skip drawing visual content if bounds don't intersect with the current clip and dirty rect clip
* PopOpacityMask should reset the current transform to what it was during PushOpacityMask call before applying the mask
* Buffer pending Push/Transform commands until an actual drawing command gets issued.
That way we can avoid otherwise expensive platform calls for visual subtrees that don't actually produce any render results due to being clipped
---------
Co-authored-by: Max Katz <maxkatz6@outlook.com>
* Don't merge RenderOptions during update and only push them to drawing context if actually needed
* Removed RenderOptions property from IDrawingContextImpl
#Conflicts:
# src/Skia/Avalonia.Skia/DrawingContextImpl.cs
* 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
* 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>
This issue only shows up when using the cecil backend for XamlX and so can't easily be tested with unit tests. The easiest way to test it is to add it to a sample project, `BindingDemo` is as good as anywhere I think.