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
* 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>
* Add FuncValueConverter with parameter support
* Fix summary comment
* Fix summary comment
* Add Equal and NotEqual converters to a ObjectConverters class
* Fix condition for Equal
* Added ObjectConverters unit tests
* [Windows] Inherit default Window icon from the Process resources
* Include ApplicationIcon as a AvaloniaResource and use it as a default icon
* Revert "[Windows] Inherit default Window icon from the Process resources"
This reverts commit b08f5d52cc.
* Safer LoadDefaultIcon
* Rename !AppIcon to !__AvaloniaDefaultWindowIcon
* Even safer LoadDefaultIcon (for tests)
* Mark MathUtilities unstable
* Mark new methods from 11.1 as internal in MathUtilities
* Fix for build task
---------
Co-authored-by: Benedikt Stebner <Gillibald@users.noreply.github.com>