Skip to content

12.1.0

Latest

Choose a tag to compare

@MrJul MrJul released this 09 Jul 13:14
a21b9f5

General

Read our release blog post for more information about new features in Avalonia 12.1.0!

What's Changed

Enhancements

  • Core – Allow setting ThemeVariant to Default to reset theme to system on android by @emmauss in #16340
  • Core – Allow Dispatcher to be converted to a TaskScheduler by @TomEdwardsEnscape in #21032
  • Core – Remove obsolete int32 limit on DispatcherTimer.Interval by @TomEdwardsEnscape in #21113
  • Core – Bump MicroCOM and use source generators by @maxkatz6 in #21218
  • Core – Improve composition hit testing performance with per-visual AABBs by @hez2010 in #21310
  • Core – Tests/render data drawing context coverage by @ZehMatt in #21341
  • Core – Align Touch/Pen capture semantics with Mouse (#21325) by @miloush in #21363
  • Core – Refactor per-draw render data allocations with a binary opcode stream by @ZehMatt in #21366
  • Core – Allow attaching a platform-specific event cookie to platform events by @kekekeks in #21378
  • Core – Pass original logical size to render targets by @kekekeks in #21380
  • Core – Pass shadow extents to the platform by @kekekeks in #21385
  • Core – A bit better handling of gpu context loss by @kekekeks in #21387
  • Core – Platform event to toggle drawn decorations state by @kekekeks in #21388
  • Core – Use eglGetProcAddress instead of NativeLibrary.TryGetExport by @kekekeks in #21392
  • Core – Support desktop OpenGL profiles via EGL by @kekekeks in #21393
  • Core – Implement IStorageProvider.OpenFileWithResultAsync by @MrJul in #21418
  • Core – Implement Bitmap.Save with a format by @MrJul in #21455
  • Core – Disable region dirty rect clipping by default by @MrJul in #21553
  • Core – Enable stencil buffers by default + add configurable option by @MrJul in #21586
  • Core – avoid SKBitmap.Copy when creating ImmutableBitmap from pixels by @kekekeks in #21675
  • Core – Generate a CycloneDX SBOM per published NuGet package by @grokys in #21681
  • Core – Composition-aware geometries and drawing change detection by @MrJul in #21682
  • Controls – Improve pull-to-refresh usability in RefreshContainer by @gentledepp in #18617
  • Controls – Add Scrollbar Context Menu by @drasticactions in #19413
  • Controls – Add custom CalendarDatePicker date parsing to allow for multiple user input formats by @Deadpikle in #21193
  • Controls – Implement TableView by @MrJul in #21511
  • Controls – Show checkerboard background for transparent ColorView palette items by @Jaex in #21613
  • Controls – Allow copying and cutting revealed TextBox passwords by @zrt2399 in #21710
  • Windows – Optimize rendering performance by reducing premultiplied AlphaMode by @lindexi in #20757
  • Windows – Create Avalonia.WinUI for initial WinUI embed support by @drasticactions in #21430
  • Windows – Implement Win32Properties.WindowCornerPreference by @MrJul in #21615
  • Windows – Support rendering at max refresh rate of current displays by @emmauss in #21643
  • Windows – Let GraphicsAdapterSelectionCallback see unfiltered adapters and warn on Adreno WARP fallback by @nickna in #21695
  • X11 – Implement automatic fps detection by @kekekeks in #18558
  • X11 – Implement XDND: drag-and-drop support for Linux by @MrJul in #20926
  • X11/Wayland – Update to latest Tmds.DBus.Protocol by @tmds in #21472
  • X11/Wayland – Better platform window handle abstraction for DBusSystemDialog by @kekekeks in #21379
  • X11/Wayland – Introduce cross-thread support for AutomaticRawEventGrouperDispatchQueue by @kekekeks in #21386
  • X11/Wayland – Workarounds for NVIDIA EGL drivers by @kekekeks in #21590
  • Wayland – Wayland-specific handling for platform surface readiness by @kekekeks in #21382
  • Wayland – Roslyn generator for generating cross-thread call proxies by @kekekeks in #21384
  • Wayland – Wayland protocol support by @kekekeks in #21448
  • Wayland – Added GLib event loop support to wayland backend by @kekekeks in #21669
  • Android/iOS – Add platform feedback api for sound and haptic feedback by @emmauss in #21189
  • Android – Use BCL storage for TryGet api by @emmauss in #21641

Fixes

  • Core – Remove dead code in AvaloniaObject by @grokys in #21452
  • Core – Fix text selection brush not applying when text selection changes by @emmauss in #21480
  • Core – Fix RequestedThemeVariant default value by @MrJul in #21624
  • Core – Rework text fallback itemization by @Gillibald in #21631
  • Core – InterWordJustification fixes by @Gillibald in #21701
  • Core – Fix BclLauncher.Exec throwing instead of returning false by @Misaka-L in #21704
  • Controls – Return false by default from FocusManager.CanHaveFocusableChildren by @freddiesmartbox in #21640
  • Controls – Fix SelectableTextBlock selection offset with InlineUIContainer by @JoshuaRowePhantom in #21646
  • Controls – Fix PART_OnContentPresenter name typo in ToggleSwitch by @zrt2399 in #21728
  • XAML – Compiled Bindings: Fix unpredictable binding to method selection by @maxkatz6 in #21617
  • XAML: Don't include non-text files in Roslyn's AdditionalFiles by @maxkatz6 in #21729
  • Windows – Fix TopMost handling for Popups by @StefanKoell in #17841
  • Windows – Support decimal in automation ComVariant (fixes NumericUpDown crash under UIA) by @valentino-saitz-optris in #21634
  • Windows – Respect IME preedit cursor position by @gotoh in #21632
  • Windows – Align ExpandCollapseState member order with UIA by @jmacato in #21693
  • Windows – Fix working area changed won't update screen by @Misaka-L in #21707
  • Windows – Fix empty automation bounds for custom root providers by @jmacato in #21730
  • X11 – Fix mishandled cancellation in DBusTextInputMethodBase by @deryaza in #21527
  • X11 – Re-read _NET_WORKAREA on WM PropertyNotify by @lambgoesbaa in #21651
  • X11 – Fix XEmbed client by @kekekeks in #21677
  • Android – TalkBack should still respond to all hover events by @IsaMorphic in #21644
  • Android – TalkBack should highlight controls instead of their ancestors by @IsaMorphic in #21654
  • Android – Fix crash populating accessibility node for some peers by @mikegoatly in #21726
  • Android – Fix AvaloniaView double root creation by @MrJul in #21738
  • Browser – Fix typo: verityPermissions -> verifyPermissions by @Frederisk in #21281
  • Headless – Fix hang if exception is thrown during headless session app construction by @ThadHouse in #21688

Misc

  • Samples – Update ControlCatalog to use the Page system by @emmauss in #21044
  • Samples – Fix OpenGL Lease page not showing in ControlCatalog by @MrJul in #21198
  • Samples – Improve ControlCatalog sidebar search by @jsuarezruiz in #21236
  • Samples – ControlCatalog: improve transparent appearance by @MrJul in #21441
  • Infra – Reset API suppressions by @MrJul in #21106
  • Infra – update .gitignore for left over generated files, and VS Code C# Dev Kit *.lscache by @Shirasagi0012 in #21228
  • Infra – Link to integration tests readme by @miloush in #21329
  • Infra – Adjust build instructions by @MrJul in #21397