What's Changed
This is the raw list of changes between 11.3.12 and 12.0.0-preview1:
- Design improvements by @maxkatz6 in #18300
- Add ability to cancel focus change by @emmauss in #18373
- [X11] Added INCR support by @kekekeks in #18428
- Don't round size in TextBlock when UseLayoutRounding is false by @appel1 in #18456
- Fix MeasureCore when there's a size constraint and there's a negative… by @appel1 in #18462
- Focus Traversal Api by @emmauss in #18647
- Make sure that tests inherit from ScopedTestBase by @kekekeks in #18690
- Update bug_report.yml by @timunie in #18711
- Fix typo in PseudoClassesExtensions class name by @zdpcdt in #18717
- feat: add TreeViewItemIndentConverter for dynamic margin calculation by @zdpcdt in #18718
- Limit use of deprecated Android display API by @emmauss in #18722
- Move android app initialization to custom application class by @emmauss in #18756
- Add IAddChild to StyleBase to fix IDE errors when adding Style as children to ContainerQuery by @wieslawsoltes in #18800
- Added missing class event handler methods by @TomEdwardsEnscape in #18837
- fix WrapPanel comments by @ingts in #18862
- Fixed core
GotFocusandLostFocushandling being skippable by @TomEdwardsEnscape in #18868 - Add IActivityApplicationLifetime for android by @emmauss in #18893
- Fixes accumulated glitches in GpuInterop demo by @kekekeks in #18900
- Add
DrawingImage.Viewboxby @TomEdwardsEnscape in #18913 - Bump ImageSharp to 2.1.10 by @drasticactions in #18924
- Update azure-pipelines.yml (#18876) by @Gillibald in #18940
- fix: Prevent DXGI from intercepting Alt+Enter and PrintScreen by @M0n7y5 in #18970
- [Android] Do not underutilize CPU/GPU when can't keep up with refresh rate by @kekekeks in #18973
- [ANDROID] Skip glWaitClient/glWaitGL/glWaitNative by @kekekeks in #18974
- Implement IDispatcherImpl for Android based on Looper and MessageQueue by @kekekeks in #18975
- [12.0] Target SkiaSharp 3.0. Drop 2.88 support by @maxkatz6 in #18981
- Remove old linux hack by @kekekeks in #18989
- Switch to using animation request for scroll inertia dispatch by @emmauss in #18997
- Cleanup InvalidationAwareSurfaceView related code by @maxkatz6 in #19045
- Fix WindowCloseReason Passed During System Shutdown by @lindexi in #19055
- feat: expose Popup property in PopupFlyoutBase for external access. by @zdpcdt in #19106
- Make
CharacterReaderinternal. by @grokys in #19123 - Fix typo:
ExternalGLibMainLoopExceptionLoggerby @Dragorn421 in #19128 - Developer Documentation by @grokys in #19131
- Remove
PropertyPath. by @grokys in #19133 - move to SDK 8.0.411 in global.json by @SimonCropp in #19136
- remove some redundant returns by @SimonCropp in #19137
- remove some duplicate dict lookups by @SimonCropp in #19138
- remove Settings.StyleCop from sln by @SimonCropp in #19140
- remove some un-used code by @SimonCropp in #19146
- Feat/19059 add automation for validation error by @longbuibao in #19161
- Capture ExecutionContext for Dispatcher.InvokeAsync by @walterlv in #19163
- Rename "Documentation" subfolder into "docs" by @maxkatz6 in #19189
- Improved NuGet package creation docs. by @grokys in #19196
- Unify selection event handling for all
SelectingItemsControltypes plusTreeViewby @TomEdwardsEnscape in #19203 - Fix: Unable to input numbers, symbols, and English letters in Avalonia on X11 with fcitx5 ForwardKey messages by @SeWZC in #19207
- Use hard links for build by @MrJul in #19209
- Migrate AvaloniaNameSourceGenerator to IIncrementalGenerator by @maxkatz6 in #19216
- Fix typo in XML documentation for ExtendClientAreaChromeHints enum by @Versette in #19245
- Typos fix by @oktrue in #19257
- Add GroupBox by @maxkatz6 in #19366
- Implemented Dispatcher.Yield / Dispatcher.Resume by @kekekeks in #19370
- Commit missing resource values by @maxkatz6 in #19371
- Use VisualBrush for GroupBox Border by @drasticactions in #19372
- [v12] Enable Mac Catalyst in Avalonia.iOS by @drasticactions in #19415
- Update release instructions by @MrJul in #19417
- Text API sample app by @miloush in #19455
- Increase RemoteProtocolTests timeout by @MrJul in #19461
- Fix comment for #19163 by @walterlv in #19469
- Removed locks from Ref by @kekekeks in #19476
- Improved API diff by @MrJul in #19490
- Font features in test app by @miloush in #19493
- Avoid processing frameworks in parallel in ValidateApiDiff by @MrJul in #19511
- Fix BitmapInterpolationMode.HighQuality when downscaling by @MrJul in #19513
- Update Nuke to v9 and fix ValidateApiDiff by @MrJul in #19529
- Move
IBindingtoBindingBaseand tidy up some binding APIs by @grokys in #19589 - Ignore empty preeditText when no composition was active before (#19595) by @Gillibald in #19621
- Fix: ChoreographerTimer should check for Android version correctly. by @IsaMorphic in #19643
- DOCS: Add final newline to markdown files by @VbhvGupta in #19645
- Limit InlineUIContainer to available width (#19651) by @Gillibald in #19675
- Move ControlCatalog.MacCatalyst/tvOS to their own folders by @MrJul in #19709
- Enable compiled bindings by default in Avalonia.props by @maxkatz6 in #19712
- Run Avalonia.LeakTests on CI by @pos777 in #19720
- Remove Tizen by @MrJul in #19722
- Implement focus change only on release when using touch or pen input by @emmauss in #19753
- Improve FontCollection customization by @Gillibald in #19756
- Universal GlyphTypeface implementation by @Gillibald in #19852
- Update to .NET 10 by @MrJul in #19869
- Improve
AvaloniaNameIncrementalGeneratorerror handling by @TomEdwardsEnscape in #19934 - Changed FuncMultiValueConverter to take IList instead of IEnumerable by @zacfromaustinpowder in #19936
- Modernise ControlCatalog XAML by @TomEdwardsEnscape in #19971
- [Text] Properly handle DrawableRun.Baseline (#19896) by @Gillibald in #19983
- [DesignerHost/HTML]: improve high-dpi screen behavior by @ijklam in #19996
- feat: Handle Datavalidations on base class "Control" by @timunie in #20067
- Fix TryCreateGlyphTypeface return on macOS with SkiaSharp 2.88 by @MrJul in #20084
- Android - Directly use the surface window handle cached in InvalidationAwareSurfaceView instead of requesting new handles by @emmauss in #20093
- Rewrite leak tests without dotMemory Unit by @MrJul in #20095
- Remove Avalonia.Browser.Blazor by @maxkatz6 in #20105
- Introduce TextOptions by @Gillibald in #20107
- Remove netstandard2.0 from almost all projects by @MrJul in #20111
- Remove Direct2D1 by @MrJul in #20132
- Use Silk.NET in GpuInterop sample by @MrJul in #20133
- Update dependencies by @MrJul in #20139
- [Feature] Move LetterSpacing to TextElement as inherited attached property by @jsuarezruiz in #20141
- Add screen orientation support for Linux DRM by @ThadHouse in #20154
- Improve NuGet.Config by clearing all package source options to make it independent of global NuGet.Config by @Athari in #20169
- Remove obsolete projects from solution filter file by @quanzhuo in #20178
- Fix several issues with ExtendClientAreaToDecorationsHint on Windows by @MrJul in #20217
- Use standalone Bun to build JS projects instead of NodeJS by @maxkatz6 in #20243
- Fix dnx random failures by @MrJul in #20284
- Restore integration tests by @MrJul in #20296
- Add PlaceholderForeground property to TextBox, AutoCompleteBox, CalendarDatePicker, NumericUpDown by @jsuarezruiz in #20303
- Fix common warnings by @MrJul in #20311
- Split analyzers and code fixes into separate projects by @MrJul in #20312
- Update .NET SDK to 10.0.101 by @Youssef1313 in #20322
- Update to xunit.v3 by @Youssef1313 in #20331
- Remove legacy Diagnostics project by @MrJul in #20332
- Delete Direct2D1 test files by @MrJul in #20333
- Update Nuke to v10 by @MrJul in #20345
- Enable nullability in Base/Markup/Markup.Xaml unit tests by @MrJul in #20346
- Fix NRE bug in TextShaperImpl.ShapeText on netstandard2.0 by @adams85 in #20369
- Update NUnit to v4 by @MrJul in #20372
- Enable nullability in Controls.UnitTests by @MrJul in #20373
- Enable nullability in various test projects by @MrJul in #20374
- Enable nullability in Avalonia.Native by @MrJul in #20378
- Enable nullability in all samples by @MrJul in #20379
- Fix ambiguous and dead
inheritdoclinks by @ScrubN in #20397 - Fix Android obsolete warnings by @MrJul in #20412
- Update CODE_OF_CONDUCT.md by @MikeCodesDotNET in #20417
- Handle added packages in API diff by @MrJul in #20428
- Fix some XML doc warnings by @MrJul in #20429
- Fix ncrunch configuration. by @grokys in #20437
- Move compiled bindings to Avalonia.Base. by @grokys in #20439
- Add CompiledBinding.Create factory methods from LINQ expressions by @grokys in #20443
- Fix android wrong inset safe area padding value after resume by @Shirasagi0012 in #20448
- Implement scene delegate for iOS by @MrJul in #20454
- Remove BinaryFormatter by @MrJul in #20455
- Fix for HarfBuzz was missing by @timunie in #20456
- Fix xUnit warnings in AnimationIterationTests by @MrJul in #20459
- Fix Avalonia.Desktop.slnf compiling by @gehongyan in #20461
- Fix NuGet warnings by @MrJul in #20466
- Remove EnableUnsafeBinaryFormatterSerialization property by @MrJul in #20467
- Update headless xUnit support to v3 by @MrJul in #20481
- Composition system SP1 by @kekekeks in #20497
- Enable warnings as errors by @MrJul in #20504
- Fix typo in build.md by @mrlacey in #20513
- Use net8.0 TFM for shipped build props by @kekekeks in #20518
- Remove IInternalScroller and move IScrollable to Avalonia.Base by @MrJul in #20519
- Remove IDataObject to IDataTransfer wrappers and related methods by @MrJul in #20521
- Simplify text formatting constructors by @MrJul in #20527
- Merge IGeometryContext and IGeometryContext2 by @MrJul in #20528
- Make Screen abstract by @MrJul in #20529
- Fix Android surface recreation by @kerams in #20538
- Fix TabItem's Content inheriting TabControl's DataContext instead of TabItem's by @ptasev in #20541
- Fixes several simple TODO12 by @MrJul in #20544
- Add AlphaFormat to ILockedFramebuffer by @MrJul in #20556
- Merge multiple interfaces related to rendering by @MrJul in #20557
- Headless: use HarfBuzz by default by @MrJul in #20561
- Merge IResourceHost2 into IResourceHost by @MrJul in #20576
- Remove NativeMenuItemToggleType and NativeMenuBar.EnableMenuItemClickForwarding by @MrJul in #20577
- Move ConstructorArgumentAttribute and remove BindingMode from ReflectionBinding constructor by @MrJul in #20589
- Fix warnings and index bugs in ControlCatalog sample by @ThadHouse in #20590
- Add IsAlive property to IRef by @MrJul in #20593
- Make NUnit tests visible in Rider again by @MrJul in #20594
- Remove AutoCompleteBox.BindingEvaluator by @MrJul in #20596
- Make IPopupHost a private API by @MrJul in #20597
- Headless NUnit: Handle async SetUp/TearDown by @MrJul in #20612
- Remove obsolete members from Avalonia.Base by @MrJul in #20613
- Remove obsolete members from Avalonia.Controls by @MrJul in #20617
- Hide binding plugins and disable Data Annotations validation by default by @grokys in #20623
- Remove obsolete members from various assemblies by @MrJul in #20628
- Move GetWindowsZOrder to IWindowingPlatform by @MrJul in #20633
- Fix Border clip regression by @kekekeks in #20648
- Use KeySymbol for AccessKey by @MrJul in #20662
- Fixed wrong Mac accessibility roles for List, ListItem, and StatusBar by @codecat in #20681
- Make sure that adorners are actually correctly positioned in visual tree for TransformToVisual and friends by @kekekeks in #20691