* Reverse text runs for RTL flow direction
* Optimize text run traversal.
* Remove unused LINQ directive from TextLineImpl.cs
* Add RTL newline handling test in TextLineTests
* Add RTL newline handling tests for text formatting.
* Make sure we only apply the cluster offset if we are inside the current cluster
* Better naming
* Guard coveredLength against invalid values
---------
Co-authored-by: Max Katz <maxkatz6@outlook.com>
* try to add Automation/Peers/DataValidationErrorsAutomationPeer.cs
* add missing file
* change to use .ToString() instead of fileter only string type
* 19059 resolve maxkatz6's comment
* 19059 resolve comment
* 19059 check if GetTip return null or whitespace
* 19059 take the error higher piority than the tooltip
---------
Co-authored-by: Long Bui <long.bui@taitcommunications.com>
Co-authored-by: Max Katz <maxkatz6@outlook.com>
* Retarget to SkiaSharp 3.0
* Replace SKFilterQuality with SKSamplingOptions
* Replace obsolete GRBackendRenderTarget ctor
* Replace SkiaMetalApi reflection with stable APIs
* Use SKMatrix4x4 where it makes more sense perf wise
* Add CS0618 warning as error for Skia
* Fix ToSKSamplingOptions implementation
* Remove hacky compile time condition
* Update API compat
* Remove maccatalyst hack
---------
Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
* Remove PropertyPath.
It was added as part of #2734 with the intention of it being used for animation setters, but this was never implemented. There's no point carrying this old unused code around - if we want to implement this feature we can add it back in.
* Update API suppressions.
* Started improving dev docs.
* Ported "Debugging XAML compiler" from wiki.
* Ported porting tips from wiki.
* Ported release process from wiki.
* Ported "macOS Development" from docs site.
From https://docs.avaloniaui.net/docs/guides/platforms/macos-development
* Fix quotes.
* Make `CharacterReader` internal.
And by extension, make the static classes which define extension methods on it internal.
To do this, I had to make Avalonia.Base's internals visible to Avalonia.Designer.HostApp, as that has a dependency on it, and exclude `StringCompatibilityExtensions` from there as the one from Avalonia.Base is now visible.
* Don't expose internals to HostApp.
Exposing Avalonia.Base's internals to Avalonia.Designer.HostApp caused an issue with the dependency on `StringCompatibilityExtensions` - because the hostapp is loaded into the target app and `StringCompatibilityExtensions` is conditionally compiled, you ended up with it being loaded into an app which does not have `StringCompatibilityExtensions`.
Instead, add `string` overloads of the internal APIs which take a `CharacterReader` so that they can be called even when `CharacterReader` isn't available.
* Update API diff.
* add lifetime with view factory on android
* rename android lifetime interface
* add warning when using ISingleViewApplicationLifetime for android, set current main activity reference on OnResume
* fix nit
* Use NDK instead of C#-JNI for choreographer
* Mark IAndroidView as obsolete, it was replaced long time ago
* Minor cleanup in TopLevelImpl, remove unused methods
* Remove ancient renderer support with Invalidate/Paint calls, drastically simplify InvalidationAwareSurfaceView
* Some simple mitigation against of double release
* Implement ISurfaceHolderCallback2 and handle SurfaceRedrawNeeded
* Handle SurfaceRedrawNeededAsync as well
* Added missing class event handler methods
* Moved handling of Holding event in Control to the class method
* Exposed Gesture.RightTappedEvent as InputElement.RightTapped and added a class handler
This event was already being raised, but you wouldn't know about it unless you looked into Avalonia's internals