[banshee] Properly (and consistently) dispose CairoContext



commit 52eed8a2bbaad88a46cdfe570058b476bfc75c91
Author: Alexander Kojevnikov <alexander kojevnikov com>
Date:   Fri Feb 12 20:27:16 2010 +1100

    Properly (and consistently) dispose CairoContext

 .../Banshee.Gui.Widgets/LargeTrackInfoDisplay.cs   |    2 +-
 .../Banshee.Sources.Gui/SourceView.cs              |    4 ++--
 .../Banshee.Widgets/DiscUsageDisplay.cs            |    2 +-
 .../Banshee.Dap.Gui/DapPropertiesDisplay.cs        |    3 ++-
 .../Banshee.NowPlaying/OverlayWindow.cs            |    2 +-
 .../Hyena.Data.Gui/ListView/ListView_Rendering.cs  |    3 +--
 .../Hyena.Gui/Hyena.Widgets/MessageBar.cs          |    3 +--
 .../Hyena.Gui/Hyena.Widgets/PulsingButton.cs       |    2 +-
 .../Hyena.Gui/Hyena.Widgets/RatingEntry.cs         |    3 +--
 .../Hyena.Gui/Hyena.Widgets/RoundedFrame.cs        |    3 +--
 .../Hyena.Gui/Hyena.Widgets/SegmentedBar.cs        |    3 +--
 11 files changed, 13 insertions(+), 17 deletions(-)
---
diff --git a/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/LargeTrackInfoDisplay.cs b/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/LargeTrackInfoDisplay.cs
index 3511316..c611a89 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/LargeTrackInfoDisplay.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/LargeTrackInfoDisplay.cs
@@ -171,7 +171,7 @@ namespace Banshee.Gui.Widgets
             cr.Pattern = mask;
             cr.Fill ();
 
-            ((IDisposable)cr).Dispose ();
+            CairoExtensions.DisposeContext (cr);
             return surface;
         }
 
diff --git a/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs b/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs
index c2a359c..5c4b68c 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceView.cs
@@ -34,6 +34,7 @@ using Cairo;
 using Mono.Unix;
 
 using Hyena;
+using Hyena.Gui;
 using Hyena.Gui.Theming;
 using Hyena.Gui.Theatrics;
 
@@ -250,8 +251,7 @@ namespace Banshee.Sources.Gui
                 cr = Gdk.CairoHelper.Create (evnt.Window);
                 return base.OnExposeEvent (evnt);
             } finally {
-                ((IDisposable)cr.Target).Dispose ();
-                ((IDisposable)cr).Dispose ();
+                CairoExtensions.DisposeContext (cr);
                 cr = null;
             }
         }
diff --git a/src/Core/Banshee.Widgets/Banshee.Widgets/DiscUsageDisplay.cs b/src/Core/Banshee.Widgets/Banshee.Widgets/DiscUsageDisplay.cs
index 3bf57d7..fd4b8bb 100644
--- a/src/Core/Banshee.Widgets/Banshee.Widgets/DiscUsageDisplay.cs
+++ b/src/Core/Banshee.Widgets/Banshee.Widgets/DiscUsageDisplay.cs
@@ -118,7 +118,7 @@ namespace Banshee.Widgets
                 Draw(cr);
             }
 
-            ((IDisposable)cr).Dispose();
+            CairoExtensions.DisposeContext (cr);
             return false;
         }
 
diff --git a/src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapPropertiesDisplay.cs b/src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapPropertiesDisplay.cs
index 2ae6fb2..039f432 100644
--- a/src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapPropertiesDisplay.cs
+++ b/src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapPropertiesDisplay.cs
@@ -39,6 +39,7 @@ using Banshee.MediaProfiles.Gui;
 using Banshee.Widgets;
 
 using Hyena;
+using Hyena.Gui;
 using Hyena.Widgets;
 using Hyena.Gui.Theming;
 
@@ -85,7 +86,7 @@ namespace Banshee.Dap.Gui
                 DrawFrame (cr, evnt.Area);
                 return base.OnExposeEvent (evnt);
             } finally {
-                ((IDisposable)cr).Dispose ();
+                CairoExtensions.DisposeContext (cr);
             }
         }
 
diff --git a/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/OverlayWindow.cs b/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/OverlayWindow.cs
index 453588e..b1bb415 100644
--- a/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/OverlayWindow.cs
+++ b/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/OverlayWindow.cs
@@ -142,7 +142,7 @@ namespace Banshee.NowPlaying
                 color.Green / (double) ushort.MaxValue,
                 0.85));
 
-            ((IDisposable)cr).Dispose ();
+            CairoExtensions.DisposeContext (cr);
             return base.OnExposeEvent (evnt);
         }
 
diff --git a/src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs b/src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs
index 712bd5c..00948bf 100644
--- a/src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs
+++ b/src/Libraries/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs
@@ -116,8 +116,7 @@ namespace Hyena.Data.Gui
 
             PaintDraggingColumn (damage);
 
-            ((IDisposable)cairo_context.Target).Dispose ();
-            ((IDisposable)cairo_context).Dispose ();
+            CairoExtensions.DisposeContext (cairo_context);
 
             return true;
         }
diff --git a/src/Libraries/Hyena.Gui/Hyena.Widgets/MessageBar.cs b/src/Libraries/Hyena.Gui/Hyena.Widgets/MessageBar.cs
index 1934697..9582664 100644
--- a/src/Libraries/Hyena.Gui/Hyena.Widgets/MessageBar.cs
+++ b/src/Libraries/Hyena.Gui/Hyena.Widgets/MessageBar.cs
@@ -141,8 +141,7 @@ namespace Hyena.Widgets
                 theme.DrawFrame (cr, Allocation, CairoExtensions.GdkColorToCairoColor (color));
                 return base.OnExposeEvent (evnt);
             } finally {
-                ((IDisposable)cr.Target).Dispose ();
-                ((IDisposable)cr).Dispose ();
+                CairoExtensions.DisposeContext (cr);
             }
         }
 
diff --git a/src/Libraries/Hyena.Gui/Hyena.Widgets/PulsingButton.cs b/src/Libraries/Hyena.Gui/Hyena.Widgets/PulsingButton.cs
index c7b57eb..4ee6b8b 100644
--- a/src/Libraries/Hyena.Gui/Hyena.Widgets/PulsingButton.cs
+++ b/src/Libraries/Hyena.Gui/Hyena.Widgets/PulsingButton.cs
@@ -108,7 +108,7 @@ namespace Hyena.Widgets
             cr.Fill ();
             fill.Destroy ();
 
-            ((IDisposable)cr).Dispose ();
+            CairoExtensions.DisposeContext (cr);
             return base.OnExposeEvent (evnt);
         }
 
diff --git a/src/Libraries/Hyena.Gui/Hyena.Widgets/RatingEntry.cs b/src/Libraries/Hyena.Gui/Hyena.Widgets/RatingEntry.cs
index ddaf603..7356605 100644
--- a/src/Libraries/Hyena.Gui/Hyena.Widgets/RatingEntry.cs
+++ b/src/Libraries/Hyena.Gui/Hyena.Widgets/RatingEntry.cs
@@ -268,8 +268,7 @@ namespace Hyena.Widgets
                 State == StateType.Insensitive ? 1 : 0.90,
                 State == StateType.Insensitive ? 1 : 0.55,
                 State == StateType.Insensitive ? 1 : 0.45);
-            ((IDisposable)cr.Target).Dispose ();
-            ((IDisposable)cr).Dispose ();
+            CairoExtensions.DisposeContext (cr);
 
             return true;
         }
diff --git a/src/Libraries/Hyena.Gui/Hyena.Widgets/RoundedFrame.cs b/src/Libraries/Hyena.Gui/Hyena.Widgets/RoundedFrame.cs
index 0e5d9f6..5c6a125 100644
--- a/src/Libraries/Hyena.Gui/Hyena.Widgets/RoundedFrame.cs
+++ b/src/Libraries/Hyena.Gui/Hyena.Widgets/RoundedFrame.cs
@@ -156,8 +156,7 @@ namespace Hyena.Widgets
                 }
                 return false;
             } finally {
-                ((IDisposable)cr.Target).Dispose ();
-                ((IDisposable)cr).Dispose ();
+                CairoExtensions.DisposeContext (cr);
             }
         }
 
diff --git a/src/Libraries/Hyena.Gui/Hyena.Widgets/SegmentedBar.cs b/src/Libraries/Hyena.Gui/Hyena.Widgets/SegmentedBar.cs
index 5f5f0a2..66e8fab 100644
--- a/src/Libraries/Hyena.Gui/Hyena.Widgets/SegmentedBar.cs
+++ b/src/Libraries/Hyena.Gui/Hyena.Widgets/SegmentedBar.cs
@@ -374,8 +374,7 @@ namespace Hyena.Widgets
             }
 
             bar.Destroy ();
-            ((IDisposable)cr.Target).Dispose ();
-            ((IDisposable)cr).Dispose ();
+            CairoExtensions.DisposeContext (cr);
 
             return true;
         }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]