From 4d4946e0c3337d090d5393eb8d8588c3181f9f9b Mon Sep 17 00:00:00 2001 From: ncarrillo Date: Tue, 21 Apr 2015 19:50:55 -0400 Subject: [PATCH] Fixed clipping/transform issue when saving and restoring contexts out of order --- Cairo/Perspex.Cairo/Media/DrawingContext.cs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Cairo/Perspex.Cairo/Media/DrawingContext.cs b/Cairo/Perspex.Cairo/Media/DrawingContext.cs index 5b79613e21..35b5647b3e 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()); }); }