From b696b969d9d12b63794dbe4efe0afaf7152bb8d4 Mon Sep 17 00:00:00 2001 From: Michael Hutchinson Date: Thu, 16 Jan 2014 16:28:38 -0500 Subject: [Gtk] Fix Cairo pattern leak --- Xwt.Gtk/Xwt.GtkBackend/ImageHandler.cs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'Xwt.Gtk') diff --git a/Xwt.Gtk/Xwt.GtkBackend/ImageHandler.cs b/Xwt.Gtk/Xwt.GtkBackend/ImageHandler.cs index f60e8f04..2dc9ba4f 100644 --- a/Xwt.Gtk/Xwt.GtkBackend/ImageHandler.cs +++ b/Xwt.Gtk/Xwt.GtkBackend/ImageHandler.cs @@ -401,11 +401,13 @@ namespace Xwt.GtkBackend Gdk.CairoHelper.SetSourcePixbuf (ctx, img, 0, 0); #pragma warning disable 618 - if (idesc.Size.Width > img.Width || idesc.Size.Height > img.Height) { - // Fixes blur issue when rendering on an image surface - ((Cairo.SurfacePattern)ctx.Source).Filter = Cairo.Filter.Fast; - } else - ((Cairo.SurfacePattern)ctx.Source).Filter = Cairo.Filter.Good; + using (var pattern = (Cairo.SurfacePattern)ctx.Source) { + if (idesc.Size.Width > img.Width || idesc.Size.Height > img.Height) { + // Fixes blur issue when rendering on an image surface + pattern.Filter = Cairo.Filter.Fast; + } else + pattern.Filter = Cairo.Filter.Good; + } #pragma warning restore 618 if (idesc.Alpha >= 1) -- cgit v1.2.3