[banshee] Fix NowPlayingTrackInfo artwork changing
- From: Gabriel Burt <gburt src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [banshee] Fix NowPlayingTrackInfo artwork changing
- Date: Sat, 23 Jan 2010 03:06:25 +0000 (UTC)
commit 8d2baa20ca3efb9331fb57b001e2efee98bf1035
Author: Gabriel Burt <gabriel burt gmail com>
Date: Fri Jan 22 17:33:14 2010 -0800
Fix NowPlayingTrackInfo artwork changing
.../Banshee.Gui.Widgets/TrackInfoDisplay.cs | 32 +++++++-------------
.../NowPlayingTrackInfoDisplay.cs | 2 -
2 files changed, 11 insertions(+), 23 deletions(-)
---
diff --git a/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs b/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs
index c07ea66..b9d0a9a 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TrackInfoDisplay.cs
@@ -77,8 +77,6 @@ namespace Banshee.Gui.Widgets
= PixbufImageSurface.Create (IconThemeUtils.LoadIcon (MissingIconSizeRequest, "video-x-generic"), true)); }
}
- protected bool DrawImageBorder { get; set; }
-
private Cairo.Color background_color;
protected virtual Cairo.Color BackgroundColor {
get { return background_color; }
@@ -109,12 +107,10 @@ namespace Banshee.Gui.Widgets
protected TrackInfoDisplay (IntPtr native) : base (native)
{
- DrawImageBorder = true;
}
public TrackInfoDisplay ()
{
- DrawImageBorder = true;
stage.Iteration += OnStageIteration;
if (ServiceManager.Contains<ArtworkManager> ()) {
@@ -127,11 +123,6 @@ namespace Banshee.Gui.Widgets
PlayerEvent.StateChange);
WidgetFlags |= WidgetFlags.NoWindow;
-
- Events |= Gdk.EventMask.ButtonPressMask;
-
- ButtonPressEvent += (o, a) => { ShowPopupMenu (); };
- PopupMenu += (o, a) => { ShowPopupMenu (); };
}
public static Widget GetEditable (TrackInfoDisplay display)
@@ -143,11 +134,6 @@ namespace Banshee.Gui.Widgets
);
}
- private void ShowPopupMenu ()
- {
- Console.WriteLine ("Context menu for track info display!");
- }
-
public override void Dispose ()
{
if (idle_timeout_id > 0) {
@@ -195,7 +181,7 @@ namespace Banshee.Gui.Widgets
if (current_track == null) {
LoadCurrentTrack ();
} else {
- LoadImage (current_track, true);
+ Invalidate ();
}
}
@@ -277,16 +263,18 @@ namespace Banshee.Gui.Widgets
return;
}
- // XFade only the cover art
- RenderCoverArt (cr, incoming_image);
-
+ // Draw the old cover art more and more translucent
CairoExtensions.PushGroup (cr);
RenderCoverArt (cr, current_image);
CairoExtensions.PopGroupToSource (cr);
-
cr.PaintWithAlpha (1.0 - stage.Actor.Percent);
- // Fade in/out the text
+ // Draw the new cover art more and more opaque
+ CairoExtensions.PushGroup (cr);
+ RenderCoverArt (cr, incoming_image);
+ CairoExtensions.PopGroupToSource (cr);
+ cr.PaintWithAlpha (stage.Actor.Percent);
+
bool same_artist_album = incoming_track != null ? incoming_track.ArtistAlbumEqual (current_track) : false;
bool same_track = incoming_track != null ? incoming_track.Equals (current_track) : false;
@@ -294,6 +282,8 @@ namespace Banshee.Gui.Widgets
RenderTrackInfo (cr, incoming_track, same_track, true);
}
+ // Don't xfade the text since it'll look bad (overlapping words); instead, fade
+ // the old out, and then the new in
if (stage.Actor.Percent <= 0.5) {
// Fade out old text
CairoExtensions.PushGroup (cr);
@@ -321,7 +311,7 @@ namespace Banshee.Gui.Widgets
{
ArtworkRenderer.RenderThumbnail (cr, image, false, Allocation.X, Allocation.Y,
ArtworkSizeRequest, ArtworkSizeRequest,
- DrawImageBorder && !IsMissingImage (image), 0.0,
+ !IsMissingImage (image), 0.0,
IsMissingImage (image), BackgroundColor);
}
diff --git a/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingTrackInfoDisplay.cs b/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingTrackInfoDisplay.cs
index d74f8fa..08bdd76 100644
--- a/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingTrackInfoDisplay.cs
+++ b/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingTrackInfoDisplay.cs
@@ -44,12 +44,10 @@ namespace Banshee.NowPlaying
public NowPlayingTrackInfoDisplay ()
{
- DrawImageBorder = false;
}
protected NowPlayingTrackInfoDisplay (IntPtr native) : base (native)
{
- DrawImageBorder = false;
}
protected override Cairo.Color BackgroundColor {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]