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 @@
+