diff options
author | Michael Hutchinson <m.j.hutchinson@gmail.com> | 2014-01-17 01:28:38 +0400 |
---|---|---|
committer | Michael Hutchinson <m.j.hutchinson@gmail.com> | 2014-01-17 01:29:03 +0400 |
commit | b696b969d9d12b63794dbe4efe0afaf7152bb8d4 (patch) | |
tree | a27f78c5688177d69f2c8d4938add7da0a1a2957 /Xwt.Gtk | |
parent | bae32617b6e8f2697b63a91eb98ad8a1e5d1df7d (diff) |
[Gtk] Fix Cairo pattern leak
Diffstat (limited to 'Xwt.Gtk')
-rw-r--r-- | Xwt.Gtk/Xwt.GtkBackend/ImageHandler.cs | 12 |
1 files changed, 7 insertions, 5 deletions
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) |