* Update .NET runtime TypeScript definitions
* Get splash screen by classname instead of ID
* Minimize css usage
* Move insets css properties to JS file
* Refactor browser surface handling, re-enable software renderer, allow fallback render modes
* Extract render timer from the surface, try to reuse compositor instance between avalonia views
* ControlCatalog: Make it possible to set some browser properties (like render mode) from URI arguments
* Rename AppBundle folder to wwwroot
* Extract ITextInputMethodImpl into a BrowserTopLevelImpl
* Extract input into BrowserInputHandler
* Make default surface size 1,1 to match other backends
* Reformat code that I touched (for the most part)
* Why this method even was in public API
* refs #14249 Avoid NullReferenceException in Gestures.PointerReleased
* refs #14249 Track current gesture state with single readonly struct
* Update from review
* Moved the last click location from the GestureState record to a separate field. (#14249)
---------
Co-authored-by: Заболотнев Юрий <zabolotnev@promit-ek.ru>
* Add Points binding observability support for Polygon and Polyline
* Add simple tests for Polygon and Polyline Points updating
* Revert "Add Points binding observability support for Polygon and Polyline"
This reverts commit e16d987945.
* Move Geometry.Changed handler to Shape class to make it available to all inheritors
* Fixes the event subscriptions
* Fix tests
* Add memory leak tests
* Added failing test for #14753.
* Don't try to publish on non-running binding.
This can happen in cases like #14653 where:
1. An event is raised with 2 binding expression subscribers
2. The first subscriber causes the 2nd subscriber to be stopped
3. The second subscriber is called from the event, even though it has been stopped (as the event list was cached at step 1)
4. It calls `PublishValue` causing an exception
Easiest to just do nothing in `PublishValue` when this scenario happens.
* 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>
* 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 merge RenderOptions during update and only push them to drawing context if actually needed
* Removed RenderOptions property from IDrawingContextImpl
* MVP SingleProject support for all supported platforms
* Convert MobileSandbox to be a single project
* WASM fixes
* Fix SDK CI version
* Use .NET 8 in build project as well
* Add EnableUnsafeBinaryFormatterSerialization
* Add macos workload, remove wasm-experimental
* And ios
* Specify TFM for single-project projects in dirs.proj
* Return deleted line
* Set PrivateAssets=all on MobileSandbox
* Add ios target only on non-linux in MobileSandbox
* Update after merges
* Update browser sub-project from the templates
* Don't build MobileSandbox on CI
* Couple of improvements
* Add android hack to run without manifest
* Add tvOS support and rearrange some properties
* Delete unusable Packages.targets file + related
* Add global Condition for AvaloniaSingleProject.targets
* Fix stylus input state mapping on iOS
* Fix UIKeyboardHidUsage.KeyboardDeleteOrBackspace mapping on iOS, should be mapped to Backspace
* Release iOS pen pointer on PenUp event, fixing IsPrimary state
* Don't limit scroll gestures to single primary input - user should be able to scroll two different scrolls
* [SKIA] Don't skip setting SKCanvas.TotalMatrix when we aren't sure what the current transform is due to Save/Restore calls
* Refactored overlays, so most of them are usable without an intermediate layer
---------
Co-authored-by: Max Katz <maxkatz6@outlook.com>