Commit Graph

27504 Commits

Author SHA1 Message Date
Petar Tasev b57223eb1b Fix TabItem's Content inheriting TabControl's DataContext instead of TabItem's (#20541)
* Child inherit DataContext from TabItem

* Remove whitespace changes

* Fix nullability error

* Fix using Julien's solution
2026-02-11 10:53:07 +00:00
Julien Lebosquain ddba811d86 Fix X11 clipboard manager store completion (#20514)
* Fix X11 clipboard manager store completion

* Restore storeAtomTcs completion on selection clear
2026-02-10 16:04:37 +00:00
Julien Lebosquain 09cf664bd1 Windows: Fix clipboard bitmap pixel shift (#20654)
* Windows: Fix clipboard bitmap pixel shift

* Remove BITMAPINFO
2026-02-10 12:00:08 +00:00
Julien Lebosquain 97e3d80a26 Fix Win32 clipboard not returning bitmaps in some cases (#20506)
* Fix Win32 clipboard not returning bitmap in some cases

* Make ClipboardFormatRegistry fields read-only
2026-02-10 11:59:58 +00:00
Julien Lebosquain 816fb91d4e Move GetWindowsZOrder to IWindowingPlatform (#20633)
* Move GetWindowsZOrder to IWindowingPlatform

* Update API suppressions
2026-02-10 11:08:16 +00:00
kerams cdb91f7f78 Use epsilon-aware greater than in TextLine and TextFormatter (#20650)
Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
2026-02-10 10:24:10 +00:00
Jan Kučera 08fcb8b1c2 Capture source change notification (#20656)
* Fire CaptureChanging event when source changes

* Do not notfiy platform if only source changed

* Notify ancestors of element to be captured if none yet

* Pointer capture notify on source change tests

---------

Co-authored-by: Jan Kučera <miloush@users.noreply.github.com>
2026-02-10 09:42:31 +00:00
Compunet abe839e1c1 Prevent ScrollBar collapsing during active thumb drag (#20563) 2026-02-09 15:23:15 +00:00
Nikita Tsukanov 30b451da52 Fix Border clip regression (#20648) 2026-02-09 15:08:59 +00:00
Julien Lebosquain 7d0c2264f5 Merge multiple interfaces related to rendering (#20557)
* Merge ISkiaGpuWithPlatformGraphicsContext into ISkiaGpu

* Merge ISkiaGpuRenderTarget2 into ISkiaGpuRenderTarget

* Merge IRenderTarget2 into IRenderTarget

* Update API suppressions

* Update API suppressions
2026-02-09 08:20:22 +00:00
Julien Lebosquain 61f8103726 Remove obsolete members from various assemblies (#20628)
* Remove IAndroidView

* Remove XamlLoadException serialization constructor

* Remove RawKeyEventArgs constructor overload

* Remove HeadlessWindowExtensions.KeyPress/KeyRelease overloads

* Update API suppressions
2026-02-06 15:03:50 +00:00
Julien Lebosquain 02c5ff41ff Remove obsolete members from Avalonia.Controls (#20617)
* Remove IActivatableApplicationLifetime

* Remove ItemContainerGenerator.ContainerFromIndex/IndexFromContainer

* Remove TreeItemContainerGenerator

* Remove SystemDialog

* Remove IInsetsManager.DisplayEdgeToEdge

* Remove Screen.PixelDensity/Primary

* Remove Screens.ScreenFromWindow

* Remove Popup/ContextMenu.PlacementMode

* Remove ToggleButton.Checked/Unchecked/Indeterminate

* Remove AppBuilder.LifetimeOverride

* Remove IApplicationPlatformEvents

* Remove TabItem.SubscribeToOwnerProperties

* Update API suppressions
2026-02-06 11:33:18 +00:00
Nikita Tsukanov 697cba7193 Composition system SP1 (#20497)
* baseline benchmark

* Composition system SP1

* Allow reusing the same BitmapCache object for multiple visuals

* Fix warnings

* Address review

* API suppressions

---------

Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
2026-02-06 11:15:47 +00:00
Steven Kirk 70f3bef705 Add CompiledBinding.Create factory methods from LINQ expressions (#20443)
* Reminder for future me.

* Move compiled bindings to Avalonia base.

* Update suppressions.

* Tweaked `BindingExpressionVisitor`.

And documented public (internal) API.

* Fix ncrunch config.

* Add comprehensive unit tests for BindingExpressionVisitor.

Tests cover all supported features including property access, indexers,
AvaloniaProperty access, logical NOT, stream bindings, and type operators.
Also includes tests for unsupported operations that should throw exceptions.

Discovered bug: IsAssignableFrom check at line 139 is backwards, causing
upcasts to incorrectly throw and downcasts to be incorrectly ignored.
Bug is documented with skipped tests showing expected behavior and passing
tests documenting current broken behavior.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Fix backwards IsAssignableFrom check in BindingExpressionVisitor.

Fixed the inheritance cast check which was inverted, causing:
- Upcasts (derived→base) to incorrectly throw exceptions
- Downcasts (base→derived) to be incorrectly ignored

Changed line 139 from:
  node.Operand.Type.IsAssignableFrom(node.Type)
to:
  node.Type.IsAssignableFrom(node.Operand.Type)

This correctly identifies safe upcasts (which are ignored) vs unsafe
downcasts (which throw exceptions).

Updated tests to remove skip attributes and removed the temporary tests
that documented the broken behavior. All 33 tests now pass.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Allow downcasts and all reference type casts in binding expressions.

Changed the cast handling to allow both upcasts and downcasts for reference
types. This makes casts actually useful in binding expressions while still
rejecting value type conversions that would require actual conversion logic.

The logic now checks:
- Both types must be reference types (not value types)
- One type must be assignable to/from the other (either direction)

This allows practical scenarios like:
- Upcasts: (BaseClass)derived
- Downcasts: (DerivedClass)baseInstance
- Casting through object: (TargetType)(object)source

The binding system will gracefully handle any runtime type mismatches.

Updated tests to verify downcasts are allowed and added test for casting
through object pattern.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Add clarifying test for cast transparency in binding expressions.

Added test showing that casts are transparent in property chains.
For example, ((TestClass)x).Property produces just one node for the
property access - the cast doesn't create additional nodes.

This clarifies that empty nodes for (TestClass)x is correct behavior:
- Empty nodes = bind to source directly
- The cast is just a type annotation, transparent to the binding path

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Fix: Casts should create ReflectionTypeCastNode, not be transparent.

Casts were incorrectly being treated as transparent (not creating nodes),
but CompiledBindingPath uses TypeCastPathElement which creates FuncTransformNode.
For consistency and correctness, BindingExpressionVisitor should also create
cast nodes using ReflectionTypeCastNode.

Changes:
- Convert expressions now create ReflectionTypeCastNode
- TypeAs expressions now create ReflectionTypeCastNode
- Both upcasts and downcasts create nodes (runtime checks handle failures)

Examples:
- x => (TestClass)x → 1 node (cast)
- x => ((TestClass)x).Prop → 2 nodes (cast + property)
- x => x.Child as object → 2 nodes (property + cast)

This matches the behavior of CompiledBindingPathBuilder.TypeCast<T>().

Updated all related tests to verify cast nodes are created.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Use compiled cast functions instead of reflection-based type checks.

Changed from ReflectionTypeCastNode (which uses Type.IsInstanceOfType) to
FuncTransformNode with a compiled cast function. This matches how
CompiledBindingPath handles TypeCastPathElement and provides better
performance by avoiding reflection.

The CreateCastFunc method compiles an expression `(object? obj) => obj as T`
which generates efficient IL similar to the 'is T' pattern used in
TypeCastPathElement<T>, rather than using reflection-based type checks.

Performance improvement:
- Before: Type.IsInstanceOfType() reflection call for each cast
- After: Compiled IL using 'as' operator (same as TypeCastPathElement<T>)

Updated tests to expect FuncTransformNode instead of ReflectionTypeCastNode.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Reuse TypeCastPathElement<T> cast function directly.

Instead of compiling our own cast expression, extract the Cast delegate
directly from TypeCastPathElement<T>. This ensures we use the exact same
code path as CompiledBindingPath, avoiding any potential behavioral
differences and code duplication.

Benefits:
- Code reuse - single implementation of cast logic
- Consistency - same behavior as CompiledBindingPathBuilder.TypeCast<T>()
- No duplicate expression compilation logic

Implementation uses reflection to create the closed generic type and
extract the pre-compiled Cast delegate, which is still more efficient
than reflection-based type checks at runtime.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Revert to lambda compilation approach for cast functions.

Reverted from using TypeCastPathElement<T> back to compiling lambda
expressions directly. The lambda approach is cleaner and more straightforward:

Benefits of lambda compilation:
- No Activator.CreateInstance call (avoids reflection for construction)
- More direct - creates exactly what we need
- No coupling to TypeCastPathElement internal implementation
- Simpler code flow

The compiled lambda generates the same efficient IL code (using 'as' operator)
as TypeCastPathElement<T> does, just without the indirection.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Code cleanup: Fix XML docs and remove unused usings.

- Changed CreateCastFunc XML docs to use <remarks> tag for better formatting
- Removed unused 'using Avalonia.Data;' from tests
- Removed redundant '#nullable enable' from tests

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Refactor BindingExpressionVisitor to use CompiledBindingPathBuilder.

Changes BindingExpressionVisitor to use CompiledBindingPathBuilder instead of
directly creating ExpressionNode instances, unifying the approach with
compile-time XAML bindings. Adds new BuildPath() method that returns
CompiledBindingPath, while maintaining backwards compatibility through the
existing BuildNodes() wrapper method.

Key changes:
- Replace internal List<ExpressionNode> with CompiledBindingPathBuilder
- Refactor all visitor methods to call builder methods
- Add accessor factory methods and implementations for property access
- Support AvaloniaProperty, CLR properties, arrays, indexers, streams, casts
- Update tests to expect PropertyAccessorNode, StreamNode, ArrayIndexerNode

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Remove CompiledBindingPathFromExpressionBuilder in favor of BindingExpressionVisitor.

Now that BindingExpressionVisitor has been refactored to use
CompiledBindingPathBuilder and provides a BuildPath() method, the test-only
CompiledBindingPathFromExpressionBuilder class is redundant and can be removed.

Changes:
- Replace CompiledBindingPathFromExpressionBuilder.Build() with
  BindingExpressionVisitor<TIn>.BuildPath() in BindingExpressionTests
- Delete CompiledBindingPathFromExpressionBuilder.cs test file
- All 122 tests in BindingExpressionTests.Compiled continue to pass

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Move test-only methods from production code to test extensions.

Removes BindingExpression.Create and BindingExpressionVisitor.BuildNodes
from production code since they were only used by unit tests.

Changes:
- Remove BindingExpression.Create<TIn, TOut> method
- Remove BindingExpressionVisitor.BuildNodes method
- Add BindingExpressionVisitorExtensions in Base.UnitTests
- Add BindingExpressionExtensions in LeakTests
- Add static helper methods in test classes to reduce noise

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Add public CompiledBinding.Create factory methods from LINQ expressions.

Adds two static factory methods to create CompiledBinding instances from
lambda expressions using BindingExpressionVisitor.BuildPath():

- Create<TIn, TOut>(expression, converter, mode)
  Creates binding without explicit source (uses DataContext)

- Create<TIn, TOut>(source, expression, converter, mode)
  Creates binding with explicit source

This provides a type-safe, ergonomic API for creating compiled bindings
from code without string-based paths.

Usage:
  var binding = CompiledBinding.Create(viewModel, vm => vm.Title);
  textBlock.Bind(TextBlock.TextProperty, binding);

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Merge CompiledBinding.Create overloads and add all binding property parameters.

Consolidates the two Create method overloads into a single method with source
as an optional parameter. Adds optional parameters for all CompiledBinding
properties (priority, converterCulture, converterParameter, fallbackValue,
stringFormat, targetNullValue, updateSourceTrigger, delay) per PR feedback.

Properties that default to AvaloniaProperty.UnsetValue (source, fallbackValue,
targetNullValue) use null-coalescing to convert null parameter values.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* (Re-)update suppressions.

* Add missing using.

* Fix ncrunch build.

* Remove file I committed by accident.

* PR feedback.

* Store static members outside generic class.

Based on PR feedback.

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-05 18:28:33 +00:00
Javier Suárez 424863d5ff Add PlaceholderForeground property to TextBox, AutoCompleteBox, CalendarDatePicker, NumericUpDown (#20303)
* Added WatermarkForeground property

* Added samples

* Added unit tests

* Added render tests

* Fix merge issues

* Updated render tests

* Standardize watermark foreground naming

* Pending changes

* More changes

* Use UseFloatingPlaceholder

* Fix tests
2026-02-05 16:35:47 +00:00
Julien Lebosquain 7b54818918 Remove IDataObject to IDataTransfer wrappers and related methods (#20521)
* Remove IDataObject to IDataTransfer wrappers and related methods

* Remove IDataObject
2026-02-05 12:00:25 +00:00
Julien Lebosquain 5f47b4be53 macOS: Ensure render target is at least 1x1 (#20610)
* Ensure Metal render target is at least 1x1

* Ensure software render target is at least 1x1
2026-02-05 11:51:42 +00:00
Julien Lebosquain 9f02346cd6 Headless NUnit: Handle async SetUp/TearDown (#20612)
* Headless NUnit: Fix TearDown not always working

* Headless NUnit: Handle async SetUp/TearDown
2026-02-05 08:23:20 +00:00
Julien Lebosquain cac4650c98 Remove obsolete members from Avalonia.Base (#20613)
* Remove CubicBezierEasing

* Remove CustomAnimatorBase

* Remove BindingPriority.TemplatedParent

* Remove CompiledBindingPath.SetRawSource

* Remove StyleDiagnostics

* Remove RadialGradientBrush.Radius

* Remove Color.ToUint32

* Remove DrawingContext.PushPreTransform/PushPostTransform

* Remove ICompositionGpuImporterObject.ImportCompeted

* Remove IStyleable

* Remove AvaloniaResourcesIndex.WriteResources

* Remove AvaloniaObjectExtensions.Bind overload

* Update API suppressions
2026-02-05 07:24:54 +00:00
Julien Lebosquain 934ca7c9f5 Release implicit mouse capture on focus lost (#20574)
* macOS: Release implicit mouse capture on focus lost

* Added native modal test to EmbeddingPage
2026-02-04 10:50:15 +00:00
Julien Lebosquain 6d45ee8cd7 Make NUnit tests visible in Rider again (#20594) 2026-02-04 03:15:15 +00:00
Julien Lebosquain 656d691940 Move ConstructorArgumentAttribute and remove BindingMode from ReflectionBinding constructor (#20589)
* Move ConstructorArgumentAttribute to Avalonia.Base assembly

* Move IOptionalFeatureProvider to Avalonia namespace

* Remove BindingMode from ReflectionBinding constructor

* Update API suppressions
2026-02-04 03:14:54 +00:00
Julien Lebosquain 0fee13f821 Add IsAlive property to IRef<T> (#20593) 2026-02-04 03:14:51 +00:00
Julien Lebosquain 313bceea90 Remove AutoCompleteBox.BindingEvaluator (#20596)
* Remove AutoCompleteBox.BindingEvaluator

* Fix AutoCompleteBoxPage sample

* Update API suppressions
2026-02-04 03:08:24 +00:00
Julien Lebosquain d670efd162 Make IPopupHost a private API (#20597)
* Make IPopupHost a private API

* Update API suppressions
2026-02-04 03:07:23 +00:00
Thad House babab4f9cb Add screen orientation support for Linux DRM (#20154)
* On Frame-Buffer-Orientation: Add screen orientation support for Linux frame buffer and DRM applications.

This commit introduces support for screen orientation across various components by adding a new `Orientation` property of type `SurfaceOrientation` in `DrmOutputOptions` and `FbDevOutputOptions`. The `IScreenInfoProvider` interface is updated to inherit from `ISurfaceOrientation`, ensuring consistent orientation management.

Key changes include:
- Enhanced `FramebufferToplevelImpl` to handle orientation in size calculations.
- Updated `LibInputBackend` for device input coordinate rotation based on screen orientation.
- Implemented `ISurfaceOrientation` in `DrmOutput` and `FbdevOutput` classes.
- Modified `DrawingContextImpl` to support canvas rotation based on orientation.
- Improved `FramebufferRenderTarget` and `PixelFormatConversionShim` to respect framebuffer orientation during surface creation and pixel format conversions.
- Streamlined rendering methods to ensure drawing operations align with the current surface orientation.
- Removed redundant code related to framebuffer handling.

* Fix review comments, add ability to test

* Some formatting

* Should be working now

* Remove fbdev changes

Theres really no point to do this in fbdev.

* Better method of rotating and transforming the canvas

* Remove breaking changes

* Switch to using a 2nd frame buffer in the rotation case

* Fix review comments

* Incorrect variable

* Fix sample

---------

Co-authored-by: davidw <davidw@icselectronics.co.uk>
2026-02-03 09:01:29 +00:00
Julien Lebosquain 92190e6ee1 Improve error message for invalid surface size (#20591) 2026-02-02 21:57:27 +00:00
Thad House 7d9c8eeb7b Fix warnings and index bugs in ControlCatalog sample (#20590) 2026-02-02 20:07:00 +00:00
Daniel Lerch 0715676f22 Raise IAvaloniaActivity.Activated on new intent (#20564)
Co-authored-by: Emmanuel Hansen <emmausssss@gmail.com>
2026-02-02 14:15:27 +00:00
Julien Lebosquain 5483217944 Merge IResourceHost2 into IResourceHost (#20576)
* Merge IResourceHost2 into IResourceHost

* Update API suppressions
2026-01-30 15:32:10 +00:00
Julien Lebosquain 806193a43d Remove NativeMenuItemToggleType and NativeMenuBar.EnableMenuItemClickForwarding (#20577)
* Remove NativeMenuItemToggleType

* Remove NativeMenuBar.EnableMenuItemClickForwarding

* Update API suppressions
2026-01-30 09:57:39 +00:00
Julien Lebosquain 4c3c9aa99f Add AlphaFormat to ILockedFramebuffer (#20556)
* Add AlphaFormat to ILockedFramebuffer

* Update API suppressions
2026-01-30 09:55:40 +00:00
Julien Lebosquain 3394815603 Simplify text formatting constructors (#20527)
* Remove the flowDirection parameter from TextCollapsingProperties.CreateCollapsedRuns

* Simplify text formatting constructors

* Update API suppressions
2026-01-30 09:55:24 +00:00
Matt Lacey 5361b98ce1 #19962 Add AXAML Source Information to debug Builds (#20524)
* #19962 Add AXAML Source Information to debug Builds

* SimplifyXamlSourceInfo

* Add XamlSourceInfo for as many elements as possible

* Add tests to confirm XamlSourceInfo is set for all types

* Remove property only added for debugging during development

* update skipped test so it runs (even though it doesn't yet pass)

* Wrap XamlAstNewClrObjectNode instead of XamlAstObjectNode, run transformer late

* Remove unsupported value types from the More_Resources_Get_XamlSourceInfo_Set

* Fix Document property not being set in runtime parser

* Add a dedicated CreateSourceInfo parameter for RuntimeXamlLoaderConfiguration, instead of reusing DesignMode

* Inherit real XamlValueWithManipulationNode, move actual manipulation to a separate class

* Fix group transformers by unwrapping manipulation nodes first

* minor Resource related test change

* Update public API as agreed

* Add new failing tests for the dictionaries

* Fix randomly failing tests, that depend on the test order

* Fix assert

* Rename AvaloniaXamlResourceTransformer

* Emit XamlSourceInfo from AvaloniaXamlResourceTransformer

* Rename AvaloniaXamlIlResourceTransformer for consistency

* Cleanup comments

* Remove XamlSourceInfoValueWithManipulationNode, use standard XamlValueWithManipulationNode

* Add new RuntimeXamlLoaderDocument.Document property

* Use UriBuilder trick to support unix paths on windows

* Add private AttachedProperty for avalonia objects, instead of always using weak table

* Fix wrong UriBuilder usage and add more test assets

* Fix "Invalid URI" exception

---------

Co-authored-by: KimHenrik <kimhenrik@outlook.de>
Co-authored-by: Max Katz <maxkatz6@outlook.com>
2026-01-30 08:19:09 +00:00
Julien Lebosquain f92035b914 Headless: use HarfBuzz by default (#20561) 2026-01-28 13:27:47 +00:00
Julien Lebosquain 1ee1509352 Fixes several simple TODO12 (#20544)
* Remove obsolete TextInputMethodClient.ShowInputPanel method

* Merge Move and Move private in KeyboardNavigationHandler

* Change Inline.TextDecorations type to AttachedProperty

* Change TextSearch.GetText/SetText parameter to Interactive

* Remove Design.SetPreviewWith overload

* Replace JSWebWorkerClone with JSWebWorker

* Remove StringTokenizer

* Update API suppressions

* Add reflection comment to RenderWorker
2026-01-27 12:55:05 +00:00
Melissa b775804b61 Implemented AutomationProperties.LiveSetting (#20473)
* Implemented LiveSetting property

* Make sure PropertyChanged callback is called on AvnAutomationPeer

* Remove `optional` from `AvnAccessibility`: we were never checking whether they respond to the selector or not anyway

* Formatting

* Use ARIA and Live Region Changed constants from mac APIs

* Fixed Mac build

* Reverted constants that don't exist on integration test XCode version

---------

Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
2026-01-26 13:48:21 +00:00
kerams 232e2aee39 Fix Android surface recreation (#20538) 2026-01-26 10:49:42 +00:00
Julien Lebosquain d5d7a7b0e8 Merge IGeometryContext and IGeometryContext2 (#20528)
Co-authored-by: Max Katz <maxkatz6@outlook.com>
2026-01-24 15:53:11 +00:00
Julien Lebosquain 3c88142694 Make Screen abstract (#20529) 2026-01-24 09:41:04 +00:00
Dong Bin 01a8042094 Disable scroll chaining for ScrollVIewers in popup. (#20503)
* feat: disable scroll chaining for AutoCompleteBox, ComboBox, and MenuScrollViewer.

* feat: disable scroll chaining for AutoCompleteBox, ComboBox, and MenuFlyoutPresenter

* feat: enable scroll chaining for ScrollViewer in MenuFlyoutPresenter.
2026-01-23 12:03:39 +00:00
Benedikt Stebner 1bce702bd4 Introduce TextOptions (#20107)
* Introduce TextOptions API

* Store BaselinePixelAlignment as byte. Move to a dedicated file.

* Update API suppressions

---------

Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
2026-01-23 11:22:27 +00:00
Julien Lebosquain 8d2f1475ca Remove IInternalScroller and move IScrollable to Avalonia.Base (#20519)
* Remove IInternalScroller and move IScrollable to Avalonia.Base

* Update API suppressions
2026-01-23 07:26:26 +00:00
lindexi 62fac86360 Reduce the number of WrapDirect3D11Texture calls (#20517)
* Reduce the number of WrapDirect3D11Texture calls

Reduce the number of WrapDirect3D11Texture calls by tying the EglSurface lifetime to _renderTexture.
When testing on a 4K display, I observed that eglCreatePbufferFromClientBuffer, which is invoked by WrapDirect3D11Texture, can take around 5 ms per frame.
By reducing the number of eglCreatePbufferFromClientBuffer calls, I was able to improve rendering performance by about 30%.
However, I’m not sure why the previous implementation needed to call WrapDirect3D11Texture on every frame.

* Remove the commented code
2026-01-22 15:28:46 +00:00
Nikita Tsukanov 8cdb68f6b5 Use net8.0 TFM for shipped build props (#20518) 2026-01-22 15:27:43 +00:00
Matt Lacey cae6ee2234 Fix typo in build.md (#20513)
just a single typo fix
2026-01-21 14:18:56 +00:00
Evan 65adcde081 Fix TimePicker to respect custom Width property (#20507)
* Fix TimePicker to respect Width by removing MinWidth from internal Button

* Add MinWidth to DatePicker for consistency
2026-01-21 10:06:02 +00:00
lindexi 93eeadf3c1 Fix the DxgiRenderTimerLoop thread get the screens from UI thread (#20511)
Fixes https://github.com/AvaloniaUI/Avalonia/issues/20508
2026-01-21 08:32:25 +00:00
Julien Lebosquain 0fb64d65cc Enable warnings as errors (#20504) 2026-01-21 08:16:46 +00:00
Evan 5f3dbae222 Fix DatePicker to respect Width by removing MinWidth from internal Button (#20487)
Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
2026-01-20 22:53:29 +00:00