What changed in Avalonia from 11 to 12
6 releases numbered after 11.3.20 up to and including 12.1.2, stable releases only. 11.3.20 and 12.1.2 are the newest stable releases of 11 and 12 we track; this page follows them as new ones ship.
102 changes across 6 releases
- Add TextInputOptions.HintLocales
- Implement VerticalContentAlignment for DatePicker and TimePicker
- Add :empty pseudoclass for ContentControl
- Add Content attribute to ContentPresenter
- Support TextInputOptions.IsSensitive and ContentType Pin on Android
- Implement VoiceOver support on iOS
- Add ToolTip.ShouldUseOverlayLayer attached property
- Allow single parameter with any type when binding to a method
- Add UseWaylandWithFallback option
- Expose AutomationId as resource-id for Android automation
- Allow setting ThemeVariant to Default to reset theme to system on Android
- Allow Dispatcher to be converted to a TaskScheduler
- Add Scrollbar context menu
- Add custom CalendarDatePicker date parsing to allow for multiple user input formats
- Implement TableView control
- Implement IStorageProvider.OpenFileWithResultAsync
- Implement Bitmap.Save with a format
- Implement Win32Properties.WindowCornerPreference
- Implement automatic fps detection on X11
- Implement XDND drag-and-drop support for Linux
- Implement Wayland protocol support
- Add platform feedback API for sound and haptic feedback on Android and iOS
- Create Avalonia.WinUI for initial WinUI embed support
- Implement Unicode word segmentation and update to Unicode v17
- Expose Calendar day button selection state to automation
- Expose menu item toggle state to automation
- Support Value pattern on editable ComboBox automation peer
- Add AX BringIntoView/AXScrollArea role on macOS
- Expose ScrollViewer scroll bars to accessibility on macOS
- Report read-only value state to accessibility on macOS
- Expose tree item selection to accessibility on macOS
- Expose placeholder text as the AT-SPI placeholder-text attribute on X11
- Add support for hover events on Android
- Add sleep timer option to Headless
- Add missing AutomationPeers from built-in Controls
- Add accessibility events for expand and collapse events on macOS
- Preserve current Animation progress if SpeedRatio or PlaybackDirection changes
- Propagate Popup.IsHitTestVisible to IPopupImpl to skip hit-testing popups on the OS level if available
- Don't build the selected text just to check whether a selection exists
- Enable picking .app-packages as a folder on macOS
- Select a KMS-capable DRM card automatically on Linux
- Remove obsolete int32 limit on DispatcherTimer.Interval
- Bump MicroCOM and use source generators
- Allow attaching a platform-specific event cookie to platform events
- Align Touch and Pen capture semantics with Mouse
- Disable region dirty rect clipping by default
- Enable stencil buffers by default with configurable option
- Support rendering at max refresh rate of current displays on Windows
- Unicode and text layout optimizations
- Enhance Roslyn-compiler visible metadata
- Fall back to pixel location when GetPointerDeviceRects is unavailable
- Synchronize Metal drawable presentation on macOS
- Bump ANGLE version and sign native binaries
- Update XML documentation to reflect correct type references in Avalonia.Controls project
- Align Touch/Pen capture semantics with Mouse
- Fire property-changed events when AutomationId changes at runtime
- Update SkiaSharp to 3.119.4
- Implement TextRunCache for performance improvement
- Improve type caching in the XAML compiler
- Fix GeometryBuilder.DrawRoundedCornersRectangle for Rect
- Fix Vulkan image layout in GPU interop
- Fix ServerCompositionDrawingSurface orphaning GPU snapshots when an update is processed after Dispose
- Fix Loaded event processing after a handler throws
- Keep transform playback in sync when hidden
- Fix vector geometry anti-aliasing regression by making stencil buffers opt-in
- Fix AccessKeyHandler when no descendant control has focus
- Ensure that ActualThemeVariant always has a proper value
- Fix init order of SetupWithClassicDesktopLifetime
- Fix Dispatcher.ReplaceImplementation
- Reapply cached binding source values during UpdateTarget
- Fix custom-hit-test optimization
- Detach platform input when presentation source closes
- Fix line break enumerator infinite loop
- Fix EGL surface recreation after native handle changes
- Fix stale _usedCache value that wasn't reset properly in compositor
- Properly wire CompositionInterop.IsLost
- Preserve lines at rounded fractional heights
- Correct nested TreeViewItem selection behaviour on pointer release
- Fix issues on SelectingItemsControls when items or control changes visibility
- Stop HotKeyManager from triggering on hidden controls
- Fix SplitView stealing BackRequested when its pane is closed
- Fix CommandBar secondary visibility during overflow open
- Fix AutoCompleteBox popup not closing on focus lost
- Position popup using the screen containing the anchor point
- Improve composition hit testing performance with per-visual AABBs
- Fix culture aware font matching
- Fix TextCollapsingProperties bidirectional-text (BiDi) correctness
- Fix NotificationCard pseudo class state when NotificationType changes
- Apply placeholder opacity to combobox placeholder textblock
- Fix radio button disabled fill and stroke brushes
- Fix CommandBar overflow labels when label position is collapsed
- Fix RenderTargetBitmap losing effects
- Fix SelectionChanged not raised on collection reset
- Ensure system back event is passed to child page once
- Make sure TryGetGlyphTypeface does not fail for concurrent access
- Avoid exceptions when getting a position from a PointerEventArgs
- Make text in NumericUpDown update immediately when changing the TextConverter
- Fix double reorder of cached bidi runs
- Set WindowDrawnDecorations background to transparent
- Fix radio MenuItem grouping in MenuFlyout
- Fix popup positioning anchor rect bug with drawn window decorations
- Bump SharpCompress from 0.41.0 to 0.48.0 in VNC
Original release notes, newest first
The list above is our reading of these notes; the originals from AvaloniaUI are here, one fold per release.
12.1.2
What's Changed
Enhancements
- Core – Preserve current
Animationprogress ifSpeedRatioorPlaybackDirectionchanges by @timiimit-tam in https://github.com/AvaloniaUI/Avalonia/pull/19830 - Core – Add
TextInputOptions.HintLocalesby @kerams in https://github.com/AvaloniaUI/Avalonia/pull/21528 - Controls – Implement
VerticalContentAlignmentforDatePickerandTimePickerby @JoaoMSSCruz in https://github.com/AvaloniaUI/Avalonia/pull/21464 - Controls – Add
:emptypseudoclass forContentControlby @zrt2399 in https://github.com/AvaloniaUI/Avalonia/pull/21829 - Controls – Propagate
Popup.IsHitTestVisibletoIPopupImplto skip hit-testing popups on the OS level if available by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21916 - Controls – Add
Contentattribute toContentPresenterby @zrt2399 in https://github.com/AvaloniaUI/Avalonia/pull/21997 - Controls – Don't build the selected text just to check whether a selection exists by @NathanDrake2406 in https://github.com/AvaloniaUI/Avalonia/pull/22100
- macOS – Enable picking
.app-packages as a folder by @jakobhellermann in https://github.com/AvaloniaUI/Avalonia/pull/21925 - Linux – Select a KMS-capable DRM card automatically by @Illustar0 in https://github.com/AvaloniaUI/Avalonia/pull/21923
- Android – Support
TextInputOptions.IsSensitiveandContentTypePin by @dariostrm in https://github.com/AvaloniaUI/Avalonia/pull/22110 - iOS – Implement VoiceOver support by @IsaMorphic in https://github.com/AvaloniaUI/Avalonia/pull/18016
Fixes
- Core – Fix
GeometryBuilder.DrawRoundedCornersRectangleforRectby @robloo in https://github.com/AvaloniaUI/Avalonia/pull/21482 - Core – Fix Vulkan image layout in GPU interop by @nateglasser in https://github.com/AvaloniaUI/Avalonia/pull/21787
- Core – Fix
ServerCompositionDrawingSurfaceorphaning GPU snapshots when an update is processed afterDisposeby @ddunham121 in https://github.com/AvaloniaUI/Avalonia/pull/21876 - Core – Fix
Loadedevent processing after a handler throws by @NathanDrake2406 in https://github.com/AvaloniaUI/Avalonia/pull/21877 - Core – Keep transform playback in sync when hidden by @NathanDrake2406 in https://github.com/AvaloniaUI/Avalonia/pull/21896
- Core – Fix vector geometry anti-aliasing regression by making stencil buffers opt-in by @NathanDrake2406 in https://github.com/AvaloniaUI/Avalonia/pull/21899
- Core – Fix
AccessKeyHandlerwhen no descendant control has focus by @AutumnYuanc in https://github.com/AvaloniaUI/Avalonia/pull/21920 - Core – Ensure that
ActualThemeVariantalways has a proper value by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21930 - Core – Fix init order of
SetupWithClassicDesktopLifetimeby @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21954 - Core – Raise
TopLevel.Closedfrom managedDisposepaths by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/22045 - Core – Ignore default ignorable codepoints in font fallback by @Gillibald in https://github.com/AvaloniaUI/Avalonia/pull/22059
- Core – Justify word gaps that fall on a run boundary by @Gillibald in https://github.com/AvaloniaUI/Avalonia/pull/22065
- Core – Snap a right-to-left buffer split to the cluster boundary by @Gillibald in https://github.com/AvaloniaUI/Avalonia/pull/22066
- Core – Do not shape the space after fallback text with the fallback font by @Gillibald in https://github.com/AvaloniaUI/Avalonia/pull/22067
- Core – Use effective capturer (which can be recognizer) for
PlatformCaptureby @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/22076 - Core – Short-circuit the binding chain on a null-conditional operator by @grokys in https://github.com/AvaloniaUI/Avalonia/pull/22082
- Core – Fix dispatcher frame capturing wrong dispatcher by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/22086
- Core – Fix memory leak when binding to observables by @grokys in https://github.com/AvaloniaUI/Avalonia/pull/22097
- Core – Fix data validation errors not showing for
OneWayToSourcebindings by @grokys in https://github.com/AvaloniaUI/Avalonia/pull/22103 - Core – Fix focus being locked when restoring focus to a control that's detached from the visual tree by @emmauss in https://github.com/AvaloniaUI/Avalonia/pull/22113
- Core – Fix infinite loop when a text run shapes to no glyphs by @Gillibald in https://github.com/AvaloniaUI/Avalonia/pull/22119
- Controls – Fix
SelectableTextBlockselection for centered and right-aligned text by @zrt2399 in https://github.com/AvaloniaUI/Avalonia/pull/21369 - Controls – Use large scroll events for
ScrollBar'sScrollToHomeandScrollToEndby @zrt2399 in https://github.com/AvaloniaUI/Avalonia/pull/21748 - Controls – Hide cached focused items in
VirtualizingStackPanelby @NathanDrake2406 in https://github.com/AvaloniaUI/Avalonia/pull/21835 - Controls – Set the
LogicalParentof theTableViewColumnby @OleRoss in https://github.com/AvaloniaUI/Avalonia/pull/21840 - Controls – Disconnect template descendants hosted inside
Viewboxwhen the template changes by @NathanDrake2406 in https://github.com/AvaloniaUI/Avalonia/pull/21879 - Controls – Fix
SelectableTextBlockselection when text content changes by @zrt2399 in https://github.com/AvaloniaUI/Avalonia/pull/21894 - Controls – Fix
TreeViewItem.BringIntoViewby @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21918 - Controls – Use
ItemTemplateforComboBox's selection box for controls by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21937 - Controls – Fix
WrapPanellayout jitter withLineSpacingby @zrt2399 in https://github.com/AvaloniaUI/Avalonia/pull/21942 - Controls – Fix tooltip flickering by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21965
- Controls – Fix
VirtualizingStackPaneloffset when scrolling to variable-sized items by @zrt2399 in https://github.com/AvaloniaUI/Avalonia/pull/21975 - Controls – Update
TabbedPage.xamlcolor resources by @smaicas in https://github.com/AvaloniaUI/Avalonia/pull/21994 - Controls – Fix multiple
ScrollContentPresenter.BringDescendantIntoViewcalls by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/22001 - Controls – Fix icon not rendered for
CalendarDatePickerin some cases by @timunie in https://github.com/AvaloniaUI/Avalonia/pull/22012 - Controls – Fix
VirtualizingStackPanelScrollToEndwith variable-sized items by @zrt2399 in https://github.com/AvaloniaUI/Avalonia/pull/22014 - Controls – Fix
TextBlockellipsis not showing withTextWrappingandMaxLinesby @puk06 in https://github.com/AvaloniaUI/Avalonia/pull/22017 - Controls – Show the
RefreshContainerrefresh indicator when refresh is triggered programmatically by @emmauss in https://github.com/AvaloniaUI/Avalonia/pull/22020 - Controls – Fix
DatePickerandTimePickerseparator alignment withVerticalContentAlignmentby @zrt2399 in https://github.com/AvaloniaUI/Avalonia/pull/22023 - Controls – Invalidate image measure when
DrawingImagesource invalidates by @emmauss in https://github.com/AvaloniaUI/Avalonia/pull/22028 - Controls – Fix light dismiss behavior when opened from the
ContextMenuby @Linlccc in https://github.com/AvaloniaUI/Avalonia/pull/22037 - Controls – Handle clipboard exceptions in
TextBox/SelectableTextBlockby @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/22052 - Controls – Revert "Stop
HotKeyManagerfrom triggering on hidden controls" by @grokys in https://github.com/AvaloniaUI/Avalonia/pull/22071 - Controls – Fix auto-sized
VirtualizingStackPanelnot rendering by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/22081 - Controls – Fix crash when changing source during
SelectionChangedby @grokys in https://github.com/AvaloniaUI/Avalonia/pull/22102 - Windows – Drop dead
WM_POINTERDEVICEINRANGE/WM_POINTERDEVICEOUTOFRANGEhandling by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/22046 - Windows – Fix pointer capture cancellation by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/22054
- Windows – Fix hidden
TrayIconappearing after icon updates by @Linlccc in https://github.com/AvaloniaUI/Avalonia/pull/22125 - macOS – Keep window creation on-screen during display reconfiguration by @brianwphamSF in https://github.com/AvaloniaUI/Avalonia/pull/21543
- macOS – Fix
NSTextInputClientrange handling and null dereference issues by @Gillibald in https://github.com/AvaloniaUI/Avalonia/pull/21885 - macOS – Open a submenu when its parent menu item is clicked by @AntonZelinsky in https://github.com/AvaloniaUI/Avalonia/pull/21890
- macOS – Fix
keyDownevent handling for input methods by @Gillibald in https://github.com/AvaloniaUI/Avalonia/pull/21906 - macOS – Use
NSTrackingInVisibleRectfor mouse movement tracking by @drasticactions in https://github.com/AvaloniaUI/Avalonia/pull/21996 - macOS – Prevent title bar flash on fullscreen exit by @Illustar0 in https://github.com/AvaloniaUI/Avalonia/pull/22101
- X11 – Fix
AVALONIA_SCREEN_SCALE_FACTORShandling by @lindexi in https://github.com/AvaloniaUI/Avalonia/pull/22129 - Wayland – Handle (0,0) surface size by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21863
- Linux – Fix wrong escaping on
xdg-openby @ReinaS-64892 in https://github.com/AvaloniaUI/Avalonia/pull/21936 - Linux – Free native DRM resources after enumeration by @Illustar0 in https://github.com/AvaloniaUI/Avalonia/pull/21924
- Android – Fix multiline
TextBoxcaret staying on previous line after autocorrect + Enter by @Zeljko-Predjeskovic in https://github.com/AvaloniaUI/Avalonia/pull/21900 - Android – Fix
TryGetFileFromPathAsync/TryGetFolderFromPathAsyncreturning null forcontent://URI by @lfeng1420 in https://github.com/AvaloniaUI/Avalonia/pull/21986 - Android – Unregister automation peers when their control leaves the visual tree by @ronnycohen in https://github.com/AvaloniaUI/Avalonia/pull/22024
- Android – Fix crash on a stale accessibility virtual view id by @ronnycohen in https://github.com/AvaloniaUI/Avalonia/pull/22122
- Android – Don't walk an
InteropAutomationPeerduring accessibility traversal by @ronnycohen in https://github.com/AvaloniaUI/Avalonia/pull/22123 - iOS – Fix issue with creating files under app container Documents directory by @KijongHan in https://github.com/AvaloniaUI/Avalonia/pull/22031
- Browser – Fix
BrowserDispatcherImplnever setting_signaledflag by @appel1 in https://github.com/AvaloniaUI/Avalonia/pull/22093
Full Changelog: https://github.com/AvaloniaUI/Avalonia/compare/12.1.1...12.1.2
12.1.1
What's Changed
Enhancements
- Controls – Add
ToolTip.ShouldUseOverlayLayerattached property by @rabbitism in https://github.com/AvaloniaUI/Avalonia/pull/21830 - XAML – Allow single parameter with any type when binding to a method by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21867
- Wayland – Add
UseWaylandWithFallbackby @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21734 - Android – Expose
AutomationIdas resource-id for Android automation by @stevemonaco in https://github.com/AvaloniaUI/Avalonia/pull/21780
Fixes
- Core – Fix
Dispatcher.ReplaceImplementationby @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21735 - Core – Reapply cached binding source values during
UpdateTargetby @NathanDrake2406 in https://github.com/AvaloniaUI/Avalonia/pull/21756 - Core – Fix custom-hit-test optimization by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21769
- Core – Detach platform input when presentation source closes by @NathanDrake2406 in https://github.com/AvaloniaUI/Avalonia/pull/21782
- Core – Fix line break enumerator infinite loop by @rabbitism in https://github.com/AvaloniaUI/Avalonia/pull/21808
- Core – Fix EGL surface recreation after native handle changes by @AB901 in https://github.com/AvaloniaUI/Avalonia/pull/21816
- Core – Fix stale
_usedCachevalue that wasn't reset properly in compositor by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21823 - Core – Properly wire
CompositionInterop.IsLostby @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21824 - Core – Preserve lines at rounded fractional heights by @NathanDrake2406 in https://github.com/AvaloniaUI/Avalonia/pull/21834
- Controls – Correct nested
TreeViewItemselection behaviour on pointer release by @TomEdwardsEnscape in https://github.com/AvaloniaUI/Avalonia/pull/21705 - Controls – Fix some issues on
SelectingItemsControlswhen items or control changes visibility by @timunie in https://github.com/AvaloniaUI/Avalonia/pull/20798 - Controls – Stop
HotKeyManagerfrom triggering on hidden controls (#21708) by @1419323749 in https://github.com/AvaloniaUI/Avalonia/pull/21714 - Controls – Fix
SplitViewstealing BackRequested when its pane is closed (#21740) by @gentledepp in https://github.com/AvaloniaUI/Avalonia/pull/21741 - Controls – Fix
CommandBarsecondary visibility during overflow open by @NathanDrake2406 in https://github.com/AvaloniaUI/Avalonia/pull/21742 - Controls – Fix
AutoCompleteBoxpopup not closing on focus lost by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21749 - Controls – Position popup using the screen containing the anchor point by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21750
- Controls – Keep page in
NavigationPage's logical tree until animation is complete by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21751 - Controls – Fix
SimpleThemefocus adorner contrast in dark mode by @iamvalenciia in https://github.com/AvaloniaUI/Avalonia/pull/21753 - Controls – Fix
ComboBoxdropdown not scrolling to selected item when opened by @zrt2399 in https://github.com/AvaloniaUI/Avalonia/pull/21764 - Controls – Allow
Gridshared size groups to shrink by @NathanDrake2406 in https://github.com/AvaloniaUI/Avalonia/pull/21837 - Controls – Fix
ListBoxcrash when scrolling after item removal by @NathanDrake2406 in https://github.com/AvaloniaUI/Avalonia/pull/21838 - Controls – Clear
TextBoxundo history on external text updates by @NathanDrake2406 in https://github.com/AvaloniaUI/Avalonia/pull/21839 - Controls – Register
Gridassigned definition collections with their shared size group by @NathanDrake2406 in https://github.com/AvaloniaUI/Avalonia/pull/21848 - Controls – Initialize
TextBoxcommand states in constructor by @zrt2399 in https://github.com/AvaloniaUI/Avalonia/pull/21859 - Controls – Fix infinite loop in tab stop search with
TabNavigation=Onceby @maggch97 in https://github.com/AvaloniaUI/Avalonia/pull/21864 - Controls – Handle
Paddingcorrectly inScrollContentPresenterby @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21872 - XAML – Respect disabled Avalonia name generator by @mklts in https://github.com/AvaloniaUI/Avalonia/pull/21804
- XAML – Support
{Binding ^}pattern forIObservableDataContextby @rabbitism in https://github.com/AvaloniaUI/Avalonia/pull/21812 - Windows – Fix Vulkan popup transparency by @the-bla in https://github.com/AvaloniaUI/Avalonia/pull/21802
- macOS – Fix IME preedit lost on focus change by @hyunq21 in https://github.com/AvaloniaUI/Avalonia/pull/21601
- macOS – Fix off-thread accessibility hit-test crash by @VicChelaru in https://github.com/AvaloniaUI/Avalonia/pull/21779
- macOS – Fix app activation by @JakobScholer in https://github.com/AvaloniaUI/Avalonia/pull/21799
- X11 – Fix active window tracking by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21846
- X11/Wayland – Fix
DBusPlatformSettingsNullReferenceExceptionby @pos777 in https://github.com/AvaloniaUI/Avalonia/pull/21831 - Wayland – Report disposed
WaylandEglWsiSurfacerender target by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21857 - Wayland – Destroy transient framebuffer SHM pools by @jmacato in https://github.com/AvaloniaUI/Avalonia/pull/21870
- Android – Fix multiline
TextBoxIME offsets by @AlexSCcon in https://github.com/AvaloniaUI/Avalonia/pull/21680 - iOS – Block external roles from activating
UISceneby @drasticactions in https://github.com/AvaloniaUI/Avalonia/pull/21844 - Headless – Fix headless session hang when cleanup throws by @NathanDrake2406 in https://github.com/AvaloniaUI/Avalonia/pull/21781
Full Changelog: https://github.com/AvaloniaUI/Avalonia/compare/12.1.0...12.1.1
12.1.0
General
Read our release blog post for more information about new features in Avalonia 12.1.0!
What's Changed
Enhancements
- Core – Allow setting
ThemeVarianttoDefaultto reset theme to system on android by @emmauss in https://github.com/AvaloniaUI/Avalonia/pull/16340 - Core – Allow
Dispatcherto be converted to aTaskSchedulerby @TomEdwardsEnscape in https://github.com/AvaloniaUI/Avalonia/pull/21032 - Core – Remove obsolete int32 limit on
DispatcherTimer.Intervalby @TomEdwardsEnscape in https://github.com/AvaloniaUI/Avalonia/pull/21113 - Core – Bump MicroCOM and use source generators by @maxkatz6 in https://github.com/AvaloniaUI/Avalonia/pull/21218
- Core – Improve composition hit testing performance with per-visual AABBs by @hez2010 in https://github.com/AvaloniaUI/Avalonia/pull/21310
- Core – Tests/render data drawing context coverage by @ZehMatt in https://github.com/AvaloniaUI/Avalonia/pull/21341
- Core – Align Touch/Pen capture semantics with Mouse (#21325) by @miloush in https://github.com/AvaloniaUI/Avalonia/pull/21363
- Core – Refactor per-draw render data allocations with a binary opcode stream by @ZehMatt in https://github.com/AvaloniaUI/Avalonia/pull/21366
- Core – Allow attaching a platform-specific event cookie to platform events by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21378
- Core – Pass original logical size to render targets by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21380
- Core – Pass shadow extents to the platform by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21385
- Core – A bit better handling of gpu context loss by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21387
- Core – Platform event to toggle drawn decorations state by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21388
- Core – Use
eglGetProcAddressinstead ofNativeLibrary.TryGetExportby @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21392 - Core – Support desktop OpenGL profiles via EGL by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21393
- Core – Implement
IStorageProvider.OpenFileWithResultAsyncby @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21418 - Core – Implement
Bitmap.Savewith a format by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21455 - Core – Disable region dirty rect clipping by default by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21553
- Core – Enable stencil buffers by default + add configurable option by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21586
- Core – avoid
SKBitmap.Copywhen creatingImmutableBitmapfrom pixels by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21675 - Core – Generate a CycloneDX SBOM per published NuGet package by @grokys in https://github.com/AvaloniaUI/Avalonia/pull/21681
- Core – Composition-aware geometries and drawing change detection by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21682
- Controls – Improve pull-to-refresh usability in
RefreshContainerby @gentledepp in https://github.com/AvaloniaUI/Avalonia/pull/18617 - Controls – Add
ScrollbarContext Menu by @drasticactions in https://github.com/AvaloniaUI/Avalonia/pull/19413 - Controls – Add custom
CalendarDatePickerdate parsing to allow for multiple user input formats by @Deadpikle in https://github.com/AvaloniaUI/Avalonia/pull/21193 - Controls – Implement
TableViewby @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21511 - Controls – Show checkerboard background for transparent ColorView palette items by @Jaex in https://github.com/AvaloniaUI/Avalonia/pull/21613
- Controls – Allow copying and cutting revealed TextBox passwords by @zrt2399 in https://github.com/AvaloniaUI/Avalonia/pull/21710
- Windows – Optimize rendering performance by reducing premultiplied AlphaMode by @lindexi in https://github.com/AvaloniaUI/Avalonia/pull/20757
- Windows – Create
Avalonia.WinUIfor initial WinUI embed support by @drasticactions in https://github.com/AvaloniaUI/Avalonia/pull/21430 - Windows – Implement
Win32Properties.WindowCornerPreferenceby @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21615 - Windows – Support rendering at max refresh rate of current displays by @emmauss in https://github.com/AvaloniaUI/Avalonia/pull/21643
- Windows – Let
GraphicsAdapterSelectionCallbacksee unfiltered adapters and warn on Adreno WARP fallback by @nickna in https://github.com/AvaloniaUI/Avalonia/pull/21695 - X11 – Implement automatic fps detection by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/18558
- X11 – Implement XDND: drag-and-drop support for Linux by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/20926
- X11/Wayland – Update to latest
Tmds.DBus.Protocolby @tmds in https://github.com/AvaloniaUI/Avalonia/pull/21472 - X11/Wayland – Better platform window handle abstraction for
DBusSystemDialogby @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21379 - X11/Wayland – Introduce cross-thread support for
AutomaticRawEventGrouperDispatchQueueby @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21386 - X11/Wayland – Workarounds for NVIDIA EGL drivers by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21590
- Wayland – Wayland-specific handling for platform surface readiness by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21382
- Wayland – Roslyn generator for generating cross-thread call proxies by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21384
- Wayland – Wayland protocol support by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21448
- Wayland – Added GLib event loop support to wayland backend by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21669
- Android/iOS – Add platform feedback api for sound and haptic feedback by @emmauss in https://github.com/AvaloniaUI/Avalonia/pull/21189
- Android – Use BCL storage for
TryGetapi by @emmauss in https://github.com/AvaloniaUI/Avalonia/pull/21641
Fixes
- Core – Remove dead code in
AvaloniaObjectby @grokys in https://github.com/AvaloniaUI/Avalonia/pull/21452 - Core – Fix text selection brush not applying when text selection changes by @emmauss in https://github.com/AvaloniaUI/Avalonia/pull/21480
- Core – Fix
RequestedThemeVariantdefault value by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21624 - Core – Rework text fallback itemization by @Gillibald in https://github.com/AvaloniaUI/Avalonia/pull/21631
- Core –
InterWordJustificationfixes by @Gillibald in https://github.com/AvaloniaUI/Avalonia/pull/21701 - Core – Fix
BclLauncher.Execthrowing instead of returning false by @Misaka-L in https://github.com/AvaloniaUI/Avalonia/pull/21704 - Controls – Return false by default from
FocusManager.CanHaveFocusableChildrenby @freddiesmartbox in https://github.com/AvaloniaUI/Avalonia/pull/21640 - Controls – Fix
SelectableTextBlockselection offset withInlineUIContainerby @JoshuaRowePhantom in https://github.com/AvaloniaUI/Avalonia/pull/21646 - Controls – Fix
PART_OnContentPresentername typo inToggleSwitchby @zrt2399 in https://github.com/AvaloniaUI/Avalonia/pull/21728 - XAML – Compiled Bindings: Fix unpredictable binding to method selection by @maxkatz6 in https://github.com/AvaloniaUI/Avalonia/pull/21617
- XAML – Don't include non-text files in Roslyn's
AdditionalFilesby @maxkatz6 in https://github.com/AvaloniaUI/Avalonia/pull/21729 - Windows – Fix
TopMosthandling for Popups by @StefanKoell in https://github.com/AvaloniaUI/Avalonia/pull/17841 - Windows – Support decimal in automation
ComVariant(fixesNumericUpDowncrash under UIA) by @valentino-saitz-optris in https://github.com/AvaloniaUI/Avalonia/pull/21634 - Windows – Respect IME preedit cursor position by @gotoh in https://github.com/AvaloniaUI/Avalonia/pull/21632
- Windows – Align
ExpandCollapseStatemember order with UIA by @jmacato in https://github.com/AvaloniaUI/Avalonia/pull/21693 - Windows – Fix working area changed won't update screen by @Misaka-L in https://github.com/AvaloniaUI/Avalonia/pull/21707
- Windows – Fix empty automation bounds for custom root providers by @jmacato in https://github.com/AvaloniaUI/Avalonia/pull/21730
- X11 – Fix mishandled cancellation in
DBusTextInputMethodBaseby @deryaza in https://github.com/AvaloniaUI/Avalonia/pull/21527 - X11 – Re-read
_NET_WORKAREAon WMPropertyNotifyby @lambgoesbaa in https://github.com/AvaloniaUI/Avalonia/pull/21651 - X11 – Fix XEmbed client by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21677
- Android – TalkBack should still respond to all hover events by @IsaMorphic in https://github.com/AvaloniaUI/Avalonia/pull/21644
- Android – TalkBack should highlight controls instead of their ancestors by @IsaMorphic in https://github.com/AvaloniaUI/Avalonia/pull/21654
- Android – Fix crash populating accessibility node for some peers by @mikegoatly in https://github.com/AvaloniaUI/Avalonia/pull/21726
- Android – Fix AvaloniaView double root creation by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21738
- Browser – Fix typo:
verityPermissions->verifyPermissionsby @Frederisk in https://github.com/AvaloniaUI/Avalonia/pull/21281 - Headless – Fix hang if exception is thrown during headless session app construction by @ThadHouse in https://github.com/AvaloniaUI/Avalonia/pull/21688
Misc
- Samples – Update ControlCatalog to use the Page system by @emmauss in https://github.com/AvaloniaUI/Avalonia/pull/21044
- Samples – Fix OpenGL Lease page not showing in ControlCatalog by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21198
- Samples – Improve ControlCatalog sidebar search by @jsuarezruiz in https://github.com/AvaloniaUI/Avalonia/pull/21236
- Samples – ControlCatalog: improve transparent appearance by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21441
- Infra – Reset API suppressions by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21106
- Infra – update .gitignore for left over generated files, and VS Code C# Dev Kit *.lscache by @Shirasagi0012 in https://github.com/AvaloniaUI/Avalonia/pull/21228
- Infra – Link to integration tests readme by @miloush in https://github.com/AvaloniaUI/Avalonia/pull/21329
- Infra – Adjust build instructions by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21397
12.0.5
What's Changed
Enhancements
- Core – Implement Unicode word segmentation and update to Unicode v17 by @JimBobSquarePants in https://github.com/AvaloniaUI/Avalonia/pull/21361
- Core – Unicode and text layout optimizations by @Gillibald in https://github.com/AvaloniaUI/Avalonia/pull/21400
- Core – Expose
Calendarday button selection state to automation by @jmacato in https://github.com/AvaloniaUI/Avalonia/pull/21540 - Core – Expose menu item toggle state to automation by @jmacato in https://github.com/AvaloniaUI/Avalonia/pull/21541
- Core – Support Value pattern on editable
ComboBoxautomation peer by @jmacato in https://github.com/AvaloniaUI/Avalonia/pull/21545 - XAML – Enhance Roslyn-compiler visible metadata by @maxkatz6 in https://github.com/AvaloniaUI/Avalonia/pull/21546
- Windows – Fall back to pixel location when
GetPointerDeviceRectsis unavailable by @Symbai in https://github.com/AvaloniaUI/Avalonia/pull/21337 - macOS – Add AX
BringIntoView/AXScrollArearole by @jmacato in https://github.com/AvaloniaUI/Avalonia/pull/21457 - macOS – Synchronize Metal drawable presentation by @drasticactions in https://github.com/AvaloniaUI/Avalonia/pull/21588
- macOS – Expose
ScrollViewerscroll bars to accessibility by @jmacato in https://github.com/AvaloniaUI/Avalonia/pull/21596 - macOS – Report read-only value state to accessibility by @jmacato in https://github.com/AvaloniaUI/Avalonia/pull/21597
- macOS – Expose tree item selection to accessibility by @jmacato in https://github.com/AvaloniaUI/Avalonia/pull/21598
- X11 – Expose placeholder text as the AT-SPI placeholder-text attribute by @jmacato in https://github.com/AvaloniaUI/Avalonia/pull/21554
- Android – Add support for hover events on android by @emmauss in https://github.com/AvaloniaUI/Avalonia/pull/21551
- Headless – Add sleep timer option by @maxkatz6 in https://github.com/AvaloniaUI/Avalonia/pull/21423
Fixes
- Core – Fix culture aware font matching by @Gillibald in https://github.com/AvaloniaUI/Avalonia/pull/21435
- Core – Fix
TextCollapsingPropertiesbidirectional-text (BiDi) correctness by @Gillibald in https://github.com/AvaloniaUI/Avalonia/pull/21446 - Core – Fix
NotificationCardpseudo class state whenNotificationTypechanges by @zrt2399 in https://github.com/AvaloniaUI/Avalonia/pull/21490 - Core – Apply placeholder opacity to combobox placeholder textblock by @emmauss in https://github.com/AvaloniaUI/Avalonia/pull/21493
- Core – Fix radio button disabled fill and stroke brushes by @emmauss in https://github.com/AvaloniaUI/Avalonia/pull/21495
- Core – Listen to layout changes for ancestor visuals in text selection canvas by @emmauss in https://github.com/AvaloniaUI/Avalonia/pull/21536
- Core – Fix caption button background in dark mode by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21555
- Core – Fix system font caching when retrieved with a different name by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21557
- Core – Fix
StackOverflowwhen aNaNoffset is set onScrollViewerby @NicholasLachapelle in https://github.com/AvaloniaUI/Avalonia/pull/21558 - Core – Avoid read-only editing side effects in
TextBoxkeyboard handlers by @zrt2399 in https://github.com/AvaloniaUI/Avalonia/pull/21587 - Core – Fix
TimePickerselection style by @shine1258 in https://github.com/AvaloniaUI/Avalonia/pull/21626 - Core – Suppress culture flowing with
ExecutionContextcaptured byDispatcherOperationby @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21627 - XAML – Fix some AOT warnings by @maxkatz6 in https://github.com/AvaloniaUI/Avalonia/pull/21616
- XAML – Fix typo in key assignment for reference assembly by @collindang88 in https://github.com/AvaloniaUI/Avalonia/pull/21474
- Windows – Fix window animations in extended mode by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21498
- Windows – Fix
WinUiCompositorConnectiondeadlock by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21591 - macOS – Map
ListItemaccessibility peer toAXRowby @jmacato in https://github.com/AvaloniaUI/Avalonia/pull/21537 - macOS – Fix
AXLayoutChangednotifications dropped for template-internal peers by @jmacato in https://github.com/AvaloniaUI/Avalonia/pull/21595 - macOS – Fix accessibility read-only, selection, and expand/collapse actions by @jmacato in https://github.com/AvaloniaUI/Avalonia/pull/21599
- macOS – Handle
replacementRangeinAvnViewby @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21608 - X11 – Fix
BorderOnlywindow resizing by @ruddypp in https://github.com/AvaloniaUI/Avalonia/pull/21579 - X11 – Fix
ClipboardUriListHelpernot flushing by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21589 - X11 – AT-SPI:
SelectChildshould add to the selection instead of replacing it by @jmacato in https://github.com/AvaloniaUI/Avalonia/pull/21602 - X11 – AT-SPI: Expose list item containers as accessible children by @jmacato in https://github.com/AvaloniaUI/Avalonia/pull/21605
- X11 – Fix invisible window when un-minimizing by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21614
- Android – Fix
AndroidStorage.TryGetFile/FolderFromPathAsyncreturning null or throwing by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21628 - Browser – Fix file picker crashing while listing entries of folders by @emmauss in https://github.com/AvaloniaUI/Avalonia/pull/21449
- Browser – Ensure sync context is set before running dispatcher messages by @emmauss in https://github.com/AvaloniaUI/Avalonia/pull/21462
- Browser – Fix Firefox drag-and-drop: handle
effectAllowed=uninitializedby @Der-Floh in https://github.com/AvaloniaUI/Avalonia/pull/21486 - Browser – Check permissions before reading or writing to clipboard by @emmauss in https://github.com/AvaloniaUI/Avalonia/pull/21573
Full Changelog: https://github.com/AvaloniaUI/Avalonia/compare/12.0.4...12.0.5
12.0.4
What's Changed
Enhancements
- Core – Bump ANGLE version + sign native binaries by @maxkatz6 in https://github.com/AvaloniaUI/Avalonia/pull/21219
- Core – Update XML documentation to reflect correct type references in
Avalonia.Controlsproject by @rabbitism in https://github.com/AvaloniaUI/Avalonia/pull/21283 - Core – Add missing AutomationPeers from built-in Controls by @jmacato in https://github.com/AvaloniaUI/Avalonia/pull/21322
- Core – Align Touch/Pen capture semantics with Mouse by @miloush in https://github.com/AvaloniaUI/Avalonia/pull/21325
- Core – Fire property-changed events when AutomationId changes at runtime by @dimension-zero in https://github.com/AvaloniaUI/Avalonia/pull/21374
- Core – Update SkiaSharp to 3.119.4 by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21434
- macOS – Add accessibility events for expand & collapse events by @codecat in https://github.com/AvaloniaUI/Avalonia/pull/21043
Performance
- Core – Implement
TextRunCacheby @Gillibald in https://github.com/AvaloniaUI/Avalonia/pull/21030 - XAML – Improve type caching in the XAML compiler by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21408
Fixes
- Core – Fix
CommandBaroverflow labels when label position is collapsed by @jsuarezruiz in https://github.com/AvaloniaUI/Avalonia/pull/21226 - Core – Fix
RenderTargetBitmaplosing effects by @timunie in https://github.com/AvaloniaUI/Avalonia/pull/20790 - Core – Fix
SelectionChangednot raised on collection reset by @NathanDrake2406 in https://github.com/AvaloniaUI/Avalonia/pull/20942 - Core – Ensure system back event is passed to child page once by @emmauss in https://github.com/AvaloniaUI/Avalonia/pull/21246
- Core – Make sure TryGetGlyphTypeface does not fail for concurrent access by @Gillibald in https://github.com/AvaloniaUI/Avalonia/pull/21269
- Core – Avoid exceptions when getting a position from a
PointerEventArgsby @TomEdwardsEnscape in https://github.com/AvaloniaUI/Avalonia/pull/21301 - Core – Make text in
NumericUpDownupdate immediately when changing theTextConverterby @cdytoby in https://github.com/AvaloniaUI/Avalonia/pull/21320 - Core – Fixes double reorder of cached bidi runs by @Gillibald in https://github.com/AvaloniaUI/Avalonia/pull/21351
- Core – Set
WindowDrawnDecorationsbackground to transparent by @ent3m in https://github.com/AvaloniaUI/Avalonia/pull/21354 - Core – Fix radio
MenuItemgrouping inMenuFlyoutby @zrt2399 in https://github.com/AvaloniaUI/Avalonia/pull/21356 - Core – Fix popup positioning anchor rect bug with drawn window decorations by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21383
- Core – Make cursor respect the captured element by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21421
- Core — Add a resource for title bar background by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21440
- XAML – Fix compiled binding DataContext inference in ItemTemplate by @JoaoMSSCruz in https://github.com/AvaloniaUI/Avalonia/pull/21248
- Windows – Run file picker on dedicated STA thread to avoid MTA deadlock by @ZehMatt in https://github.com/AvaloniaUI/Avalonia/pull/21266
- Windows – Fix borders and shadows on Windows 10 in extended mode by @MrJul in https://github.com/AvaloniaUI/Avalonia/pull/21412
- Windows – Include border size in
GetMinMaxrequest by @emmauss in https://github.com/AvaloniaUI/Avalonia/pull/21420 - Windows – Fix UIA tree not visible for Avalonia content embedded via
WinFormsAvaloniaControlHostby @AndreyPolovodov in https://github.com/AvaloniaUI/Avalonia/pull/21422 - macOS – Fix
DeviceLuidbyte ordering on GPU interop by @dirivero in https://github.com/AvaloniaUI/Avalonia/pull/21293 - X11 – Observe potential DBus exception in
UnregisterWindowAsyncby @holdxen in https://github.com/AvaloniaUI/Avalonia/pull/21344 - X11 – Update Avalonia.DBus submodule by @jmacato in https://github.com/AvaloniaUI/Avalonia/pull/21419
- Android – Fix File properties by @emmauss in https://github.com/AvaloniaUI/Avalonia/pull/21307
- Android – Correct usage of
PointToScreenfor Android TalkBack by @IsaMorphic in https://github.com/AvaloniaUI/Avalonia/pull/21402 - iOS – Drain
UISceneConnectionOptionson cold launch by @koblavi in https://github.com/AvaloniaUI/Avalonia/pull/21394 - Headless – Fix xUnit headless tests losing
TestContexton background thread by @mikegoatly in https://github.com/AvaloniaUI/Avalonia/pull/21357
Full Changelog: https://github.com/AvaloniaUI/Avalonia/compare/12.0.3...12.0.4
12.0.3
What's Changed
Security
- VNC – Bump SharpCompress from 0.41.0 to 0.48.0 by @kekekeks in https://github.com/AvaloniaUI/Avalonia/pull/21339
Full Changelog: https://github.com/AvaloniaUI/Avalonia/compare/12.0.2...12.0.3