* Change namespace to prevent conflicts.
The `DataGrid` in the namespace name was hiding the `DataGrid` type.
* Initial impl of bindable DataGridRow.IsSelected.
* Make DataGridRow.IsSelected two-way bindable.
* Draft new API
* Push reusable ScreensBaseImpl implementation
* Fix tests and stubs
* Update ScreensPage sample to work on mobile + show new APIs
* Reimplement Windows ScreensImpl, reuse existing screens in other places of backend, use Microsoft.Windows.CsWin32 for interop
* Make X11 project buildable, don't utilize new APIs yet
* Reimplement macOS Screens API, differenciate screens by CGDirectDisplayID
* Fix build
* Adjust breaking changes file (none affect users)
* Fix missing macOS Screen.DisplayName
* Add more tests + fix screen removal
* Add screens integration tests
* Use hash set with comparer when removing screens
* Make screenimpl safer on macOS as per review
* Replace UnmanagedCallersOnly usage with source generated EnumDisplayMonitors
* Remove unused dllimport
* Only implement GetHashCode and Equals on PlatformScreen subclass, without changing base Screen
* use tap size as default size for scrolling start. reset IsGestureRecognitionSkipped when pointer is released
* use static default constant for scroll distance
* fix typo
* Init
* Remove XY navigation cache as it's no use
* Use pooled collection for XY navigation
* Restructure code a bit, fix IScroller handling
* Init KeyboardNavigationTests_XY tests
* Simplify XYFocus.GetNextFocusableElement usage
* Minor fixes
* Add more tests
* Remove unused NuiKeyboardNavigationHandler
* Finalizing
* Fix tests
* Add TODO12
* Make XYFocusOptions a class
* Add TestServices.FocusableWindow and make KeyboardNavigationHandler lazy, as it can't be reused on multiple windows
* Fix KeyboardNavigationHandler events handling, when focus was not actually changed
* Add arrow key tests
* Replace XYFocusKeyboardNavigationMode with more flexible XYFocusNavigationModes, integrate with KeyDeviceType input types
* Make XY focus navigation less broken, when there is no starting focused control
* Several Android TV compatibility improvements
* Remap tizen Back button to Esc
* Introduce internal XYFocusHelpers
* Make ComboBox and AutoCompleteBox handle Key events only when it's needed
* Make TextBox handle Key events only when it's needed
* Ignore Alt+Down when XY navigation is enabled in CalendarDatePicker and SplitButton
* Rename IsAllowedXYNavigationMode
* Fix ButtonSpinner with XY navigation
* Implement a very simple focus engagement for GridSplitter and Slider
* Add SelectingItemsControl property init order tests
* Property order in SelectedItemsControl doesn't matter on init
* Fix SelectedItemsControl properties during init when Selection is set
* Fixed SelectedItemsControl.AnchorIndex after init
* Test - On empty PM/AM designator on culture info the time picker should show AM/PM
* On empty PM/AM designator on culture info the time picker should show AM/PM
* Try to find nearest matching glyphTypeface when no exact match could by found by SystemFontCollection
* Fix glyphTypeface caching
* Rework SystemFontCollection TryCreateGlyphTypeface
* Make sure a failed glyphTypeface lookup is cached
* Make sure to only try to get nearest match if we failed to load the font via font magager impl
* Apply font simulations if possible
* Enable font simulation for embedded fonts
* Adjust simulated angle
* Fix HeadlessUnitTestSession creation race condition
* Bind Compositor/MediaContext to a fixed UI thread
* Fix dead lock in AvaloniaTestCase
* Rename Compositor.UIThreadDispatcher to Dispatcher
Warning MSB4011 "C:\GitHub\Avalonia\build\AvaloniaPublicKey.props" cannot be imported again. It was already imported at "C:\GitHub\Avalonia\Directory.Build.props (2,3)". This is most likely a build authoring error. This subsequent import will be ignored. Avalonia.Markup.Xaml.UnitTests C:\GitHub\Avalonia\tests\Avalonia.UnitTests\Avalonia.UnitTests.csproj 25
- animation/layout/render cycle is now managed from a central location
- animations are now throttled if animation/layout/render pass takes longer than a frame which previously caused a soft-freeze with input not being processed
- the public API is trimmed to make sure that we can make other planned changes during the 11.x support cycle
"Changelog":
- IClock is hidden and is planned to be replaced later
- Animator classes are hidden and are planned to be refactored later
- IAnimation members are hidden, it's supposed to be a marker interface for Style.Animations collection now, to start animations manually use Animation.RunAsync
- Sealed several classes in Avalonia.Animation namespace
- Spring class is removed from the public API (it wasn't possible to use it directly in a meaningful way anyway)
- Sealed brushes, transforms, effects and drawings
- Removed separate dispatcher priorities for Layout and Composition, everything now happens from a central place with Render priority (same as WPF)
- - some private "hook" priorities are added for now, those will be removed later
- IRenderLoop is hidden and removed from locator
- IRenderer is hidden (the plan is to remove that concept later)
- - Renderer.Start/Stop exposed as StartRendering/StopRendering on the toplevel (will be on a CompositionTarget/PresentationSource-like type later)
- - Renderer.Diagnistics exposed as RendererDiagnostics (same)
- - Renderer is no longer created by the platform code and is created by TopLevel itself
- - From the user-code hit-testing should be done by VisualExtensions.GetVisual(s)At, which has the same features
- - For unit tests a separate IHitTester interface is added which can be changed for a particular toplevel
- ILayoutManager is hidden
- - LayoutManager.ExecuteLayoutPass() exposed as TopLevel.UpdateLayout()
- Custom animators now have a separate base class that only deals with interpolation
Minor improvements:
- Compositor has a mode that doesn't use DispatcherTimers, useful for unit tests
- Introduced ScopedTestBase that auto-resets the locator when test is finished
Which exposes the resize reason and new client size. Required renaming `PlatformResizeReason` to `WindowResizeReason`. Made `TopLevel.HandleResized` method internal.