* Add failing test for #16746
* Always read the value from the target object.
The value must be read from the target object instead of using the value from the event because the value may have changed again between the time the event was raised and now: if that occurs in a two-way binding then we end up with a stack overflow.
* Add attribute
* Replace `SetLastError = true` with `Marshal.GetLastSystemError()`
* Make Avalonia.Base and Avalonia.Skia compatible with DisableRuntimeMarshalling
* First step in Android DisableRuntimeMarshalling support
* Make Avalonia.Browser compatible
* Set EnableRuntimeMarshalling=true on all projects we are not yet ready to support without runtime marshalling
* Added failing AutoCompleteBox test.
* Make sure that flags are reset if exits early.
Wrap everything in a `try`...`finally` block so that they get reset even on exception.
* fix Automation.HelpText on windows
* fix AutomationProperties.HelpText on macos
* change breaking abstract to virtual
* only fall back to tooltip if string
* remove duplicate override
* fix AutomationProperties.HelpText on macos
* Use scalable rasterization for visual brush
* Make ConfigureSceneBrushContentWithPicture less byzantine
---------
Co-authored-by: Benedikt Stebner <Gillibald@users.noreply.github.com>
The `AvaloniaNative.GlPlatformSurface.CreateGlRenderTarget` method can only be called on the UI thread. In normal circumstances this method is called in response to a call to `TopLevel.HandlePaint` from the native `AvnView.updateLayer` method. However, a customer was experiencing a problem where `AvnView.updateLayer` and by extension `TopLevel.HandlePaint` were being called before the window is shown. This broke the creation of the GL render target.
* Enable VisualBrush to be used as Visual's OpacityMask
* Add missing test file
---------
Co-authored-by: Benedikt Stebner <Gillibald@users.noreply.github.com>
* fix Automation.HelpText on windows
* change breaking abstract to virtual
* only fall back to tooltip if string
* remove duplicate override
---------
Co-authored-by: Benedikt Stebner <Gillibald@users.noreply.github.com>
* Make base project internals visible to DiagnosticsSupport, just in case for now
* Make ValueStoreDiagnostic diagnostic API more usable with wider range of types
* Add MultiBindingExpression internal members for visibilty
* Implement AvaloniaObject on ResourceProvider
* ColorPaletteResources and ColorPaletteResourcesCollection should inherit ResourceProvider
* Use ResourceProvider in tests too
* Adjust API diff
---------
Co-authored-by: Steven Kirk <grokys@users.noreply.github.com>
* android - call base dispatch key event before called toplevel's override
* android - handle keyevent in avalonia before calling base DispatchKeyEvent
---------
Co-authored-by: Benedikt Stebner <Gillibald@users.noreply.github.com>
* feat: expose TreeViewItem expansion status to root event.
* feat: use expand/collapse event similar to Expander.
* feat: 1. delete useless event arg 2. move event to TreeViewItem. 3. Fix documentation. 4. Change routing to Bubble|Tunnel as both parent and children may care about this epxanding status.
* Make sure wrapper and platform DrawingContext have the same transform after Flush
* Add some tests
* Update Avalonia.RenderTests.WpfCompare.csproj
* Remove comments
* Use test font
* Fix IME not working in some scenarios.
* If other services trigger `OnNameChange` before `GetNameOwnerAsync`, then we will incorrectly connect to other services, and will be stuck at `Connect`. We should ignore irrelevant services.
* `WatchNameOwnerChangedAsync` should be called only once.
* Add log.
* Stop Selection.Clear() when selecting a range to enable multiple consecutive blocks to be selected.
* Reinstated Selection.Clear() when range is true and toggleModifier is false.
When range and toggleModifier are true, consecutive ranges are selected.
Added new unit test.