[banshee] [TrackInfoDisplay] Fix a crash



commit 61911ef50c4ee8b5c51030d89e09d46476aecc3e
Author: Alexander Kojevnikov <alexander kojevnikov com>
Date:   Fri Feb 19 11:58:47 2010 +1100

    [TrackInfoDisplay] Fix a crash

 .../Banshee.Gui.Widgets/TrackInfoDisplay.cs        |   47 +++++++++----------
 1 files changed, 22 insertions(+), 25 deletions(-)
---
diff --git a/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs b/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs
index 244ee8a..8816833 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs
@@ -168,29 +168,7 @@ namespace Banshee.Gui.Widgets
         {
             base.OnSizeAllocated (allocation);
 
-            if (missing_audio_image != null) {
-                ((IDisposable)missing_audio_image).Dispose ();
-                var disposed = missing_audio_image;
-                missing_audio_image = null;
-                if (current_image == disposed) {
-                    current_image = MissingAudioImage;
-                }
-                if (incoming_image == disposed) {
-                    incoming_image = MissingAudioImage;
-                }
-            }
-
-            if (missing_video_image != null) {
-                ((IDisposable)missing_video_image).Dispose ();
-                var disposed = missing_video_image;
-                missing_video_image = null;
-                if (current_image == disposed) {
-                    current_image = MissingVideoImage;
-                }
-                if (incoming_image == disposed) {
-                    incoming_image = MissingVideoImage;
-                }
-            }
+            ResetMissingImages ();
 
             if (current_track == null) {
                 LoadCurrentTrack ();
@@ -207,17 +185,36 @@ namespace Banshee.Gui.Widgets
             background_color = CairoExtensions.GdkColorToCairoColor (Style.Background (StateType.Normal));
             text_light_color = Hyena.Gui.Theming.GtkTheme.GetCairoTextMidColor (this);
 
+            ResetMissingImages ();
+
+            OnThemeChanged ();
+        }
+
+        private void ResetMissingImages ()
+        {
             if (missing_audio_image != null) {
                 ((IDisposable)missing_audio_image).Dispose ();
+                var disposed = missing_audio_image;
                 missing_audio_image = null;
+                if (current_image == disposed) {
+                    current_image = MissingAudioImage;
+                }
+                if (incoming_image == disposed) {
+                    incoming_image = MissingAudioImage;
+                }
             }
 
             if (missing_video_image != null) {
                 ((IDisposable)missing_video_image).Dispose ();
+                var disposed = missing_video_image;
                 missing_video_image = null;
+                if (current_image == disposed) {
+                    current_image = MissingVideoImage;
+                }
+                if (incoming_image == disposed) {
+                    incoming_image = MissingVideoImage;
+                }
             }
-
-            OnThemeChanged ();
         }
 
         protected virtual void OnThemeChanged ()



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