diff --git a/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionVisual/ServerCompositionVisual.Adorners.cs b/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionVisual/ServerCompositionVisual.Adorners.cs index fe6effbbd4..6f78ca312a 100644 --- a/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionVisual/ServerCompositionVisual.Adorners.cs +++ b/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionVisual/ServerCompositionVisual.Adorners.cs @@ -52,7 +52,7 @@ partial class ServerCompositionVisual // We ignore Visual's RenderTransform completely since it's set by AdornerLayer and can be out of sync // with compositor-driver animations var ownTransform = MatrixUtils.ComputeTransform(Size, AnchorPoint, CenterPoint, Matrix.Identity, Scale, - RotationAngle, Orientation, Offset); + RotationAngle, Orientation, Offset + Translation); if ( AdornerLayer_GetExpectedSharedAncestor(this) is {} sharedAncestor && ComputeTransformFromAncestor(AdornedVisual, sharedAncestor, out var adornerLayerToAdornedVisual)) @@ -63,7 +63,7 @@ partial class ServerCompositionVisual } else _ownTransform = MatrixUtils.ComputeTransform(Size, AnchorPoint, CenterPoint, TransformMatrix, Scale, - RotationAngle, Orientation, Offset); + RotationAngle, Orientation, Offset + Translation); PropagateFlags(true, true); @@ -170,4 +170,4 @@ partial class ServerCompositionVisual _pools.IntStackPool.Return(ref _adornerPushedClipStack!); } } -} \ No newline at end of file +} diff --git a/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionVisual/ServerCompositionVisual.ComputedProperties.cs b/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionVisual/ServerCompositionVisual.ComputedProperties.cs index 4b98b0f80e..ed8860e04a 100644 --- a/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionVisual/ServerCompositionVisual.ComputedProperties.cs +++ b/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionVisual/ServerCompositionVisual.ComputedProperties.cs @@ -148,7 +148,7 @@ partial class ServerCompositionVisual if (_combinedTransformDirty) { _ownTransform = MatrixUtils.ComputeTransform(Size, AnchorPoint, CenterPoint, TransformMatrix, Scale, - RotationAngle, Orientation, Offset); + RotationAngle, Orientation, Offset + Translation); setDirtyForRender = setDirtyBounds = true; @@ -161,4 +161,4 @@ partial class ServerCompositionVisual _ownBoundsDirty = _clipSizeDirty = _combinedTransformDirty = _compositionFieldsDirty = false; PropagateFlags(setDirtyBounds, setDirtyForRender, setHasExtraDirtyRect); } -} \ No newline at end of file +} diff --git a/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionVisual/ServerCompositionVisual.DirtyInputs.cs b/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionVisual/ServerCompositionVisual.DirtyInputs.cs index fa8c6047fc..8352fc70e2 100644 --- a/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionVisual/ServerCompositionVisual.DirtyInputs.cs +++ b/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionVisual/ServerCompositionVisual.DirtyInputs.cs @@ -43,7 +43,9 @@ partial class ServerCompositionVisual | CompositionVisualChangedFields.Orientation | CompositionVisualChangedFields.OrientationAnimated | CompositionVisualChangedFields.Offset - | CompositionVisualChangedFields.OffsetAnimated; + | CompositionVisualChangedFields.OffsetAnimated + | CompositionVisualChangedFields.Translation + | CompositionVisualChangedFields.TranslationAnimated; private const CompositionVisualChangedFields ClipSizeDirtyMask = CompositionVisualChangedFields.Size @@ -100,7 +102,8 @@ partial class ServerCompositionVisual || property == s_IdOfScaleProperty || property == s_IdOfRotationAngleProperty || property == s_IdOfOrientationProperty - || property == s_IdOfOffsetProperty) + || property == s_IdOfOffsetProperty + || property == s_IdOfTranslationProperty) TriggerCombinedTransformDirty(); if (property == s_IdOfClipToBoundsProperty diff --git a/src/Avalonia.Base/composition-schema.xml b/src/Avalonia.Base/composition-schema.xml index febf465042..defe02769c 100644 --- a/src/Avalonia.Base/composition-schema.xml +++ b/src/Avalonia.Base/composition-schema.xml @@ -22,6 +22,7 @@ +