* Adds the ImmutablePenWithDynamicBrush and fixes Border and Shape border re-rendering when changing Brush value
* Removes the ImmutablePenWithDynamicBrush, rollback to Pen
* Cache and reuse Pen
* Move all Pen's updating logic to Pen.TryModifyOrCreate
* Add some tests for Pen.TryModifyOrCreate
* Add proper handling for DashStyle
* Invert condition in Pen.TryModifyOrCreate, fixes the logic
---------
Co-authored-by: Max Katz <maxkatz6@outlook.com>
Co-authored-by: Tim <47110241+timunie@users.noreply.github.com>
* 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
- Make them run for both compiled and reflection bindings (found a bunch of tests that fail with compiled bindings)
- Make them not depend on converting the `BindingExpression` to an observable and instead test the end result of the binding on an `AvaloniaObject`
* TabItem.TabStripPlacemenet should be correctly set
* fix: TabItem.TabStripPlacemenet should be correctly set
* move TabItemStripPlacement assignment to PrepareContainerForItemOverride
* remove excessive UpdateTabStripPlacement call on TabStripPlacementProperty.Changed
* Updated RenderDataRectangleNode.HitTest to properly hit-test rounded rectangles.
* Moved rounded rectangle contains logic to the RoundedRect struct, added unit tests, and refactored previous RenderDataRectangleNode changes.
* Fixed a comment typo.
* Added a private access modifier to a method.
* Add failing test for RangeBase overriding Value on DataContext changed
* Add bool flag to skip coercing min, max and value while DataContext is
changing
* Add failing unit test for scenario 1 in #11878.
* Set TabOnceActiveElement on realized container.
Fixes scenario 1 in #11878.
* Use TabOnceActiveElement to decide focused element.
Fixes scenario #3 in #11878.
* Added failing unit tests for #11666.
* Handle items replaced with its own logic.
Don't rely on a remove/insert - it creates more work than needed.
* Fix some off-by-N errors in RealizedStackElements.
Fixes#11666
* Don't alter state in properties.
The `IValueEntry.HasValue` and `ValueFrame.IsActive` properties could alter state, which meant that when inspecting objects with these properties in a debugger, the state got altered by observing it. Make them methods.
* Deleted unused file.
* Add failing test for #12381.
* Use the index from the event in EvaluateIsActive.
Break the rules in this case.
Fixes#12381
---------
Co-authored-by: Max Katz <maxkatz6@outlook.com>
* Failing unit test for #13474
* Fix for #13474 by reverting changes to ListBoxItem from #12883
* Version 2 of fix, only marks event handled for Mouse input.
* Version 3. Re-raise the event, but backup the source before doing so and restore it after. Closest in functionality to original, but preserves "correct" event source in order to allow Tapped events.
---------
Co-authored-by: Jumar Macato <16554748+jmacato@users.noreply.github.com>
Turns out these were needed by animations, just our animation system has no unit tests so I missed that fact earlier. Add a basic animation unit test that fails without anchor support, and add binding anchors back in. Currently a private API as I suspect this feature shouldn't be needed outside the framework.
* Add failing test for #8638.
* Don't hide tooltip when pointer is over tooltip.
Fixes#8638
* Close the tooltip when pointer exits.
If the pointer has been moved from the control to the tooltip, then out of the tooltip to another control, ensure that the tooltip is closed.
* AdornedControl can be a standard CLR property.
* Add diagnostics support to the Avalonia.Build.Tasks
* HostApp and generators build fix
* Diagnostics support in Avalonia XAML
* Support multiple style selector errors at once
* Improve avalonia intrinsics error handling + add tests
* Add CompiledBindings multiple errors tests
* Fix name generator
* Make AvaloniaXamlIlDuplicateSettersChecker a warning
* Fix Style_Parser_Throws_For_Duplicate_Setter test
* Make XamlLoaderUnreachable respect warnings settings
* Add AvaloniaXamlIlStyleValidatorTransformer
* Throw more specific exceptions instead of XamlParseException
* Get rid of XamlXDiagnosticCode to simplify diagnostics code
* Simplify XAML exceptions by avoiding DiagnosticCode in them
* Simplify XamlCompilerDiagnosticsFilter
* Don't use AvaloniaXamlDiagnosticCodes in Avalonia.Generators
* Fix some error handlings in compiler task
* Update editor config for in-solution analysis
* Update XamlX
* Fix missing document path
* Avoid Description field usage
* Add AvaloniaXamlVerboseExceptions property and make exception formatting customizable
* Make Avalonia.NameGenerator not crash if there are XAML errors, members should still be generated
* Update tests/Avalonia.Markup.Xaml.UnitTests/Xaml/StyleIncludeTests.cs
---------
Co-authored-by: Jumar Macato <16554748+jmacato@users.noreply.github.com>
* 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
* Remove focus hack from Popup.
* Added failing focus scope tests.
* Refactor focus scopes in FocusManager.
- Store focused element within a scope using an attached property (like WPF)
- Store current focus root so that focus can be restored to that root when a focused control or active focus scope is removed
Fixes#13325
* Suppress API compat error.
This was being produced for a compiler-generated enumerable class that was erroneously being included in the reference assembly for `FocusManager`.
* Remove focus hack from ContextMenu.
And add failing test now that the hack is removed.
* Try to return a rooted host visual.
Fixes failing test from previous comment where focus wasn't restored when closing a context menu.
* Introduce ErrorConverter and DisplayErrors attached properties
- the converter can be used to change the way a message is print
- we use DisplayErrors to get the converted error messages
* Adjust FluentTheme
* [WIP] Add a sample Page for DataValidationErrors
* use a private attached property to store recent errors
this approach gets rid of the need to DisplayErrors property
* Update samples with some additional details
* Reuse rich SetError logic in DataGrid as well
* Unify some code with OnErrorsOrConverterChanged
* Restore old behavior with null default value
* Add SetErrorConverter test
---------
Co-authored-by: Max Katz <maxkatz6@outlook.com>