* 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.
* Add and implement ISingleTopLevelApplicationLifetime (internal API)
* Fix Android initialization order, so we can have AfterSetup with usable TopLevel in the callback
* Fix android and futher simplify its initialization
* Return removed public API, make it all work together, introduce AvaloniaActivity
* Adjust some comments and minor bug fixes
* Add CreateAppBuilder to iOS and Tizen as well for consistency
* Add AfterApplicationSetup private api, so our backends have a safe place to setup avalonia views.
* Keep number of breaking changes minimal
* Don't create a layer if the previous frame is retained by the render target
* D2D
* compile
* Only check PreviousFrameIsRetained if not using layer
* ABI
- 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
And refactor that interface while we're at it. Also add a `DefaultPlatformSettings` implementation instead of implementing it in each backend with slightly different values.
* Add pixel format parameter to Linux frame buffer platform setup.
Currently setup always changes the frame buffer pixel format to RGBA which results in the screen being cleared if the default pixel format is not RGBA (as on a Raspberry PI) . This clears any splash screen and leaves the screen blank for a period which is not a good UX. Now the frame buffer setup can select the correct pixel format or use null to leave the pixel format unchanged.
* Remove unnecessary formatting changes.
Add v0.10.x compatible constructor.
* Keep old StartLinuxFbDev extension method for v0.10.x binary compatibility