* 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>
* 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>
* implement pre events for focus change
* add cancelling api to focus change
* add overload for SetFocusedElement
* add focus redirection
* update with api change requests
* Don't round size when UselayoutRounding is false for TextBlock. Fixes#18423
* Added back size rounding
* Removed rounding again for the text size and fixed padding rounding in RenderCore
* Make typeface matching and synthetic typeface creation customizable
* Rename test collection
* Revert breaking change
* Directly use the DefaultFontFamily name when the alias is being used
* Only start ScrollGesture when left click pressed, also `GetCurrentPoint(null)` behaves the same as root visual
* Allow right-click pen to select items on press
* Add context menus to even items on ListBox page for testing
* Avoid global static in UpdateSelectionFromPointerEvent
* Revert "Avoid global static in UpdateSelectionFromPointerEvent"
This reverts commit 2562d73e83.
* Add comment to UpdateSelectionFromPointerEvent
* Use fully mocked rendering for list box test
* Add pen selection tests
* TouchTestHelper should use correct inputs
* Add UniformGrid test cases for scenarios where row/column spacing takes more than available space
* Constrain child size to non-negative when performing arrange in UniformGrid
* Adjust TextLineImpl.GetTextRunBounds so it properly handles substitutions
Adjust TextLineImpl.GetTextRunBounds so it properly reports out of text range bounds
Adjust TextLineImpl.GetTextRunBounds so it properly reports text source run indices
* Remove redundant comments
* Add requested changes
* Added unit test for AutoCompleteBox DataValidationErrors
- checks that when the TextBox control's Errors are bound to the parent AutoCompleteBox, they get updated correctly in both parent AutoCompleteBox control and TextBox control
* Fix issue with DataValidationErrors causing issues with AutoCompleteBox because of Bindings
- when binding a control's DataValidationErrors.Errors property to the same property of another control, the use of a static bool flag "s_overridingErrors" was preventing the control with the Binding from being updated correctly
- issue is resolved by replacing static bool flag with a private AttachedProperty<bool> in DataValidationErrors.cs
* Clean up Asserts in previous AutoCompleteBoxTests.cs changes
* Add unit test for sub menu item testing
* Parent menu items should not be disabled on command binding failure.
If a menu has a failed `Command` binding, but also has sub-menu items, then it should not be disabled.
---------
Co-authored-by: Anastassia Pellja <anyka545@gmail.com>
* Add failing tests for SelectedItem/SelectedIndex without an ItemsSource
* Keep SelectedItem/SelectedIndex until ItemsSource is set
* Add failing tests for setting SelectedValue without an ItemsSource
* Keep SelectedValue until ItemsSource is set
* fix height queries not matching when container name is set, remove unused query grammer
* add unit test for height container queries with name
---------
Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
* Fix issue with MinTextWidth (Fixes#18372)
* Make sure that MeasureOverride for TextPresenter and TextBlock are using same textWidth
* Revert #16601 that is introducing an invalid calculation for the OverhangLeading
Add tests for OverhangLeading and OverhangTrailing
* Revert MinTextWidth
* Fix tests to not rely on fixed values
* Fix remaining issues
* Fix comment in Direct2D1 GlyphRunImpl.cs
* Fix Direct2D1 rendering
* Fix gold images
* Restore TextLineImpl
* Update gold image
* Restore Math.Max on OverhangLeading and Trailing
* Adopt similar behavior to WPF: don't use OverhangLeading/Trailing for measuring and remove clip by default.
But it requires further support with NeedsClipBounds
* Remove MinTextWidth
Keep ClipToBounds=true default for TextBlock
* Revert change
---------
Co-authored-by: Benedikt Stebner <Gillibald@users.noreply.github.com>
* Add an optimized path for notifying property changes for inherited values
Avoids many allocations of event args.
* fix unit tests with hack to prove concept.
* update docs and remove value tuple that could cause allocation.
* add a benchmark for inherited property change notifications.
* Update ncrunch config.
* Fix test naming.
* Add BindingExpressionGrammar tests.
We only had tests for the error states, and that was named incorrectly.
* Parse null-conditionals in bindings.
* Initial impl of null conditionals in binding path.
Fixes#17029.
* Ensure that nothing is logged.
* Make "?." work when binding to methods.
* Don't add a new public API.
And add a comment reminding us to make this class internal for 12.0.
* Use existing method.
* Implemented IClipboard.TryGetInProcessDataObjectAsync for X11
* [Win32] Implemented TryGetInProcessDataObjectAsync
* Rest of the platforms
* Run `nuke ValidateApiDiff`
---------
Co-authored-by: Max Katz <maxkatz6@outlook.com>
* search for visual parents when hittesting
* Add unit test for hit testing on disabled visual
---------
Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
* Improve ToString() output in case when Key is set to Key.None
* Update KeyGesture.Parse method to support only modifiers combinations
* Update tests with empty combination and modifiers-only combinations
* Fix XamlTypeExtensionNode not being handled on the x:DataType transformer
* Add testt with complex DataType
* Make vm:MainWindowViewModel+TestItem nested type generic on BindingDemo
* Add spacing properties
* Add spacing while computing final offsets
* Add spacing while calculating desired size
* Add unit tests
* fix missing spacing arrangement
* draw grid line
* Add property changed handler
* add new unit test
* Resolve star spacing
* fix AffectsMeasure
* overflow unit test
* Clean up
---------
Co-authored-by: Poker <poker_sang@outlook.com>