27515 Commits

Author SHA1 Message Date
Julien Lebosquain 960cb39414 Enable nullability in Controls.UnitTests (#20373) 2025-12-30 09:10:37 +00:00
Julien Lebosquain c68111294f Enable nullability in Base/Markup/Markup.Xaml unit tests (#20346)
* Enable nullability in UnitTests

* Enable nullability in Base.UnitTests

* Enable nullability in Markup.UnitTests

* Enable nullability in Markup.Xaml.UnitTests
2025-12-29 09:24:49 +00:00
Julien Lebosquain 2a3c9d4095 Update Nuke to v10 (#20345) 2025-12-29 09:24:21 +00:00
Krzysztof Krysiński f74633c574 Added xKbSetDetectableAutoRepeat (#20360) 2025-12-29 09:24:04 +00:00
Max Katz 66d38d897d Update HelpLink for XAML namespace resolution (#20371) 2025-12-29 09:12:50 +00:00
Ge 62597de97c Add support for parsing BoxShadows with color functions (#20321)
* Add support for parsing BoxShadows with colors expressions with parentheses

* Added BoxShadowsTests

* BoxShadow parsing should also respect parentheses

* Add StringSplitter

* Fix test

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* StringSplitter should not accept same bracket pairs

* Returns empty array only when input is null

* Add StringSplitterTests

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-23 11:24:55 +00:00
Julien Lebosquain a7f09f4315 Delete Direct2D1 test files (#20333) 2025-12-23 06:37:00 +00:00
Youssef Victor f5bab9b85e Update .NET SDK to 10.0.101 (#20322) 2025-12-22 11:34:04 +00:00
Wiesław Šoltés 2bd109c808 Fix System.InvalidOperationException Dispatcher job loop detected (#20310) 2025-12-19 18:20:32 +00:00
Grigorii Vasilchenko 5766c304ea Fixed thread-race condition on shutdown (#20299) 2025-12-19 15:26:52 +00:00
Julien Lebosquain 64b63fa5d2 Fix common warnings (#20311) 2025-12-19 11:45:30 +00:00
Julien Lebosquain d84d881729 Restore integration tests (#20296)
* Restore integration tests

* Fix TransparentPopup test not closing on macOS
2025-12-19 10:05:51 +01:00
Julien Lebosquain ce0a1c6b3e Update dependencies (#20139)
* Update dependencies

* Partially revert appium upgrades

* Fix integration tests
2025-12-17 15:23:32 +01:00
Emmanuel Hansen 9623669c41 Win32 - export bitmap in more clipboard formats (#20209)
* win32 - export bitmap in more clipboard formats

* addressed review

* use compatible bitmap for ole gdi copy

* change bitmap intent to colormetric

---------

Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
2025-12-17 11:36:14 +00:00
Emmanuel Hansen 1ae9694f78 Use androidx lib for backpressed callback (#20291)
* use androidx lib for backpressed callback

* Update API suppressions

---------

Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
2025-12-17 01:19:04 +00:00
dpse 12d7ff1bfc Apply NumberFormat changes to NumericUpDown (#20248)
* Add NumericUpDown NumberFormat failing test

* Force text update when NumberFormat has changed

---------

Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
2025-12-17 00:45:40 +00:00
AlanIWBFT 81165c1ea8 [X11] Clean up IME inconsistencies (#20201)
* [X11] Clean up IME inconsistencies

* Fix where combinations like `GTK_IM_MODULE=none XMODIFIERS=@im=fcitx` can actually enable IME instead of forbid it - this is consistent with `AvaloniaX11Platform.EnableIme()`
* XIM should always be used if none of `IM_MODULE` is set (instead of only when they are explicitly set to `xim`)

* [X11] Try connecting to IMEs specified in `XMODIFIERS=@im=` through D-Bus before falling back to XIM

* [X11] Refine `XMODIFIERS=@im=` parsing

* Only the first one specified will be parsed and accepted
2025-12-16 20:30:40 +00:00
Tom Edwards b7cb9e5770 Unify selection event handling for all SelectingItemsControl types plus TreeView (#19203)
* Unify selection event handling for all SelectingItemsControl types plus TreeView
- Controls can decide whether to select on press/release, or introduce their own logic
- Container types handle events and can decide whether to forward them on to their owner
- Corrected various cases where controls checked whether a button was held when the event occurred, rather than whether it triggered the event
- Replaced various hardcoded modifier key checks with uses of PlatformHotkeyConfiguration
- ListBox no longer cares if you swipe before releasing touch (unless that triggers a gesture)
- TreeViewItem is now selected on touch/pen release

* API change requests

* Review comments
2025-12-16 17:54:58 +00:00
Javier Suárez b66f5ada75 [Feature] Add FillRule property for Polyline/Polygon (#20159)
* Implement FillRuleProperty on Polyline

* Implement FillRule Property on Polygon

* Add tests

* Added comments to new public APIs

* Added more comments

* More tests

* More tests

* Updated API

* Added render tests

* More render tests

* Reintroducing the original PolylineGeometry constructor

* Updated API file

---------

Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
2025-12-16 16:12:31 +00:00
Julien Lebosquain 37526dc904 Fix dnx random failures (#20284)
* Try to fix dnx random failure

* Use full paths for WebAppDir everywhere

* Call dnx explicitly on CI

---------

Co-authored-by: Max Katz <maxkatz6@outlook.com>
2025-12-16 11:55:58 +00:00
Krzysztof Krysiński 79be86d923 Added basic Pen support for X11 (#19910)
* Added surface dispose to DrawingSurfaceDemoBase

* Added pen support for x11

* Fixed intermediate points defaulting properties

* Detect the current device being an eraser

* Formatting fixes

* Removed spaces

---------

Co-authored-by: flabbet <flabbet@fedora>
Co-authored-by: Nikita Tsukanov <keks9n@gmail.com>
2025-12-16 10:12:00 +00:00
IanRawley 7a340a6579 XYFocus should skip effectively disabled controls (#20241)
* Added failing unit test

* Changed IsValidCandidate to check effective values

---------

Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
2025-12-15 20:09:19 +00:00
Tim Miller 367d8b293b [Avalonia.Native] Use relative placement for detecting drag and drop locations. (#20280)
* Use relative position of view for drag and drop

* Add Drag And Drop Test

* Add AutomationProperties
2025-12-15 17:18:14 +01:00
YasarYY 895edfb24a Fix on screen keyboard is missing decimal separator on iOS (#20279) 2025-12-15 16:38:09 +01:00
Washi 7369175c2d Reduce Allocations in Text Rendering (#20175)
* Reduce allocations for FontFamily.Parse

* Turn Trie data into static data

* Use static lambda in s_cachedLanguage.GetOrAdd

* Make LineBreakEnumerator+LineBreakState a ref struct to avoid allocations

* Use backing field for storing trie data in debug builds
2025-12-15 10:48:51 +00:00
Julien Lebosquain f46758f972 Implement macOS accessibility value setter (#20262) 2025-12-12 11:34:47 +00:00
Max Katz 09fefed1a4 Use standalone Bun to build JS projects instead of NodeJS (#20243)
* Replace node.js npm with bun

* Run bun test target, instead of direct npm, remove `SkipPreviewer` prop

* Add "--yes" argument to dnx command

* Remove unused scripts
2025-12-09 22:06:24 +00:00
Julien Lebosquain 884051ed10 Fix several issues with ExtendClientAreaToDecorationsHint on Windows (#20217)
* Add extended client area Win32 integration tests

* Fix Win32 extended client areas

* Run Win32 integration tests in pipelines

* Add extra tests and fixes when CanResize=false

* Use WM_GETMINMAXINFO to maximize captionless windows

* Use dotnet run on CI for IntegrationTests.Win32

* Address review
2025-12-06 09:48:58 +00:00
Soar360 d39cb62a5d UniformGrid: Round measured cell sizes when UseLayoutRounding is enabled (#19959)
* Implement layout rounding for child sizes

Added layout rounding for child measurements in UniformGrid.

* Remove comment on child measurement in UniformGrid

Removed comment about measuring children in UniformGrid.

* Improved layout rounding logic for UniformGrid

* Grid_Ensures_Consistent_Cell_Width_When_UseLayoutRounding
2025-12-05 15:21:24 +00:00
ijklam 34b00c5169 [DesignerHost/HTML]: improve high-dpi screen behavior (#19996)
* DesignerHost: improve high-dpi screen behavior
handle previewer dpi changed event

* fix test

---------

Co-authored-by: ijklam <43789618+Tangent-90@users.noreply.github.com>
2025-12-05 15:10:30 +00:00
Denis Pleshakov f878d94c4a [Fix] ImmediateRenderer (#20174)
* Fixed invalid renering of controls with non-zero bounds position.
Fixed text clipping of text elements inside LayoutTransformControl.

* Fixed rendering of VisualBrush.

* Fixed control clipping.

* Fixed opacity mask state.

* Reworked to skip rendering of elements out of clip.

* Code cleanup.

* Added unit test.

* Parameters order.

---------

Co-authored-by: PleshakovDV <pleshakovdv@ugpa.ru>
2025-12-05 14:51:49 +00:00
Nikita Tsukanov 4e530e4340 Improve effect render performance by providing Skia with information about subscene bounds (#20191)
* Improve effect render performance by providing Skia with information about subscene bounds

* Fixed test

* apidiff

* Update API diff

---------

Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
2025-12-05 14:25:03 +00:00
Benedikt Stebner 981a0106a6 Introduce PathSegmentEllipsis TextTrimming (#20077)
* Introduce PathSegmentEllipsis TextTrimming

* Adjust fallback

* Second rework

* Add some tests

* Minor adjustments

* Adjust SplitResult usage

* Update MainWindow.axaml

Remove sample

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* More adjustments

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Use the correct width

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
2025-12-05 10:36:58 +00:00
Max Katz fd37190b32 Change empty icon to use lazy initialization (#20211) 2025-12-04 02:17:13 +00:00
Max Katz 5f0cb2ea45 Design improvements (#18300)
* Support Design.PreviewWith for any previewing content

* ApplyDesignModeProperties should use bindings

* Add support for IDataTemplate PreviewWith

* Add new members as agreed on API review

* ApplyDesignModeProperties probably should be privateapi

* Add xml comments

* Extract Design.CreatePreviewWithControl and move it out of DesignerSupport project

* Several fixes, add tets

* Update API diff

* wip

* Add DesignModeTests, move relevant tests to this class

* Restore methods accepting control, add IStyle target overload

* Restore Design.SetPreviewWith(AvaloniaObject, Control)

* `SetPreviewWith(any, Control? control)` should accept nullable control

* Add `SetDataContext(IDataTemplate control, object? value)`

* Better Obsolete message
2025-12-03 15:21:28 +00:00
Julien Lebosquain 0f8f70437c Rewrite leak tests without dotMemory Unit (#20095)
* Remove dotMemory Unit from LeakTests

* Nuke: run leak tests normally
2025-12-03 10:06:04 +00:00
Dawid Wąsowski 6e04c167f0 Fix exception when deleting a non-empty directory (#20194) 2025-12-02 00:15:48 +00:00
Alexander Prokhorov 5f9d156ad4 Change NuGet.Config to be independent from global NuGet.Config (#20168) (#20169)
* Clear all package source options
* Move Azure .NET 10 transport feed from RestoreAdditionalProjectSources to NuGet.Config
2025-12-01 16:03:02 +00:00
Copilot 406925a344 Fix thread-safety issue causing infinite loops in TypeHelper cache (#20113)
* Initial plan

* Fix thread-safety issue by replacing Dictionary with ConcurrentDictionary

Co-authored-by: grokys <1775141+grokys@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: grokys <1775141+grokys@users.noreply.github.com>
2025-12-01 16:02:23 +00:00
Javier Suárez 7efc6d9bb0 [Feature] Move LetterSpacing to TextElement as inherited attached property (#20141)
* Add LetterSpacing property to the Button

* Created attached property

* Added samples

* Updated implementation

* Updated Themes

* Updated ButtonPage LetterSpacing sample

* Updated templates

* Updated API
2025-12-01 08:50:28 +00:00
Quan Zhuo f616545408 Remove obsolete projects from solution filter file (#20178)
* Remove obsolete projects from solution filter file

* Update project references and documentation for ControlCatalog.Desktop
2025-12-01 08:43:22 +00:00
Alexander Prokhorov 51987447d3 Fixed ReversibleStackPanel not invalidating arrange on ReverseOrder change (#20172)
* Added unit tests for ReversibleStackPanel (#20171)
* Invalidates_Arrange_On_Reverse_Order_Change fails.

* Fixed ReversibleStackPanel not invalidating arrange on ReverseOrder change (#20171)
2025-11-28 17:57:07 +00:00
Emmanuel Hansen 0b5a82884e fix some query error and print out more detailed exceptions in query parser (#20170) 2025-11-28 11:19:04 +00:00
Javier Suárez c197ac496a [Feature] Add StrokeMiterLimit property to Shape (#20156)
* Added StrokeMiterLimitProperty

* Added tests
2025-11-27 11:20:49 +00:00
Julien Lebosquain 656c98a863 Fix headless race condition (#20143) 2025-11-27 09:01:10 +00:00
Tim 55a0b5b1c6 feat: Handle Datavalidations on base class "Control" (#20067)
* Handle Datavalidations on base class "Control"

this removes the need to override it in any sub-classing control and also allowes developers to add validation support for other properties / controls by overriding Metadata

* Revert changes on Button.

The current behavior is that button gets disabled and until we decide if this is desired, keep this behavior.
2025-11-26 17:03:14 +00:00
Melissa d2817201cb Added LandmarkType to automation properties (#20134)
* Added LandmarkType to automation properties

* Set AutomationProperties.AccessibilityView on Main landmark in IntegrationTestApp, which is required for Narrator to find the landmark

* Implement AXRoleDescription as suggested by W3C

* Fixed wrong role descriptions
2025-11-26 14:49:28 +00:00
Julien Lebosquain 9c393b306a Don't clear X11 clipboard if we still have the ownership (#20137) 2025-11-26 08:10:10 +00:00
Artemis Li 60ee26ae21 Preserve run formatting when applying SelectionForegroundBrush in SelectableTextBlock (#20110)
* Add failing test for preserving run formatting during selection

* Fix selection styling to preserve original text formatting in SelectableTextBlock

* fix: apply old logic when `_textRuns` is null
2025-11-24 22:58:19 +00:00
snowflysky c7bc7e92a5 Enable antialiasing based on EdgeMode in DrawBitmap (#20116)
* Enable antialiasing based on EdgeMode in DrawBitmap

* Update expected image for ImageBrush Tile UniformToFill test

* Add tests for rotated image with EdgeMode options

* Add expected images for Direct2D1 image rotation tests

* Revert "Add expected images for Direct2D1 image rotation tests"

This reverts commit 63dd6717b0ff4488ee7b453f220e3329202ec9d2.

* Remove Direct2D1 in ImageTests

---------

Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
2025-11-24 19:23:31 +00:00