diff --git a/Cairo/Perspex.Cairo/Media/DrawingContext.cs b/Cairo/Perspex.Cairo/Media/DrawingContext.cs index 1d6d2a146a..61cbf8a606 100644 --- a/Cairo/Perspex.Cairo/Media/DrawingContext.cs +++ b/Cairo/Perspex.Cairo/Media/DrawingContext.cs @@ -176,14 +176,11 @@ namespace Perspex.Cairo.Media /// A disposable used to undo the transformation. public IDisposable PushTransform(Matrix matrix) { - this.context.Save(); this.context.Transform(matrix.ToCairo()); - this.CurrentTransform *= matrix; - return Disposable.Create(() => + return Disposable.Create(() => { - this.context.Restore(); - this.CurrentTransform *= matrix.Invert(); + this.context.Transform(matrix.Invert().ToCairo()); }); }