[banshee/source-contents: 141/141] Fix the NowPlaying fullscreen handler override
- From: Gabriel Burt <gburt src gnome org>
- To: svn-commits-list gnome org
- Subject: [banshee/source-contents: 141/141] Fix the NowPlaying fullscreen handler override
- Date: Wed, 17 Jun 2009 19:58:36 -0400 (EDT)
commit 68ad2f0671ddd2b4c6f454a5961cd4c5e2d859cf
Author: Gabriel Burt <gabriel burt gmail com>
Date: Wed Jun 17 18:53:47 2009 -0500
Fix the NowPlaying fullscreen handler override
.../Banshee.Sources.Gui/SourceContentManager.cs | 18 ++++++++-------
.../Banshee.NowPlaying/NowPlayingInterface.cs | 23 ++++++++++++++++++++
.../Banshee.NowPlaying/NowPlayingSource.cs | 14 ------------
3 files changed, 33 insertions(+), 22 deletions(-)
---
diff --git a/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceContentManager.cs b/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceContentManager.cs
index a032030..0312dfd 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceContentManager.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceContentManager.cs
@@ -78,16 +78,18 @@ namespace Banshee.Sources.Gui
public void Dispose ()
{
- foreach (SourceContentProvider provider in providers.Values) {
- IDisposable disposable = provider as IDisposable;
- if (disposable != null) {
- disposable.Dispose ();
- }
- }
+ lock (providers) {
+ AddinManager.RemoveExtensionNodeHandler ("/Banshee/ThickClient/SourceContentProvider", OnExtensionChanged);
- providers.Clear ();
+ foreach (SourceContentProvider provider in providers.Values) {
+ IDisposable disposable = provider as IDisposable;
+ if (disposable != null) {
+ disposable.Dispose ();
+ }
+ }
- AddinManager.RemoveExtensionNodeHandler ("/Banshee/ThickClient/SourceContentProvider", OnExtensionChanged);
+ providers.Clear ();
+ }
}
private void OnExtensionChanged (object o, ExtensionNodeEventArgs args)
diff --git a/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingInterface.cs b/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingInterface.cs
index d581342..4abd3f8 100644
--- a/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingInterface.cs
+++ b/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingInterface.cs
@@ -70,6 +70,7 @@ namespace Banshee.NowPlaying
public class NowPlayingInterface : VBox, ISourceContents
{
private NowPlayingSource source;
+ private bool source_active = false;
private Hyena.Widgets.RoundedFrame frame;
private Gtk.Window video_window;
private FullscreenAdapter fullscreen_adapter;
@@ -101,14 +102,35 @@ namespace Banshee.NowPlaying
fullscreen_adapter = new FullscreenAdapter ();
screensaver = new ScreensaverManager ();
+
+ ServiceManager.SourceManager.ActiveSourceChanged += OnActiveSourceChanged;
}
public override void Dispose ()
{
base.Dispose ();
+ ServiceManager.SourceManager.ActiveSourceChanged -= OnActiveSourceChanged;
screensaver.Dispose ();
}
+ private void OnActiveSourceChanged (SourceEventArgs args)
+ {
+ UpdateFullscreenOverride (args.Source);
+ }
+
+ private void UpdateFullscreenOverride (Source activeSource)
+ {
+ if (activeSource is NowPlayingSource) {
+ if (!source_active) {
+ source_active = true;
+ OverrideFullscreen ();
+ }
+ } else if (source_active) {
+ source_active = false;
+ RelinquishFullscreen ();
+ }
+ }
+
private void MoveVideoExternal (bool hidden)
{
if (contents.Parent != video_window) {
@@ -204,6 +226,7 @@ namespace Banshee.NowPlaying
public bool SetSource (ISource src)
{
this.source = source as NowPlayingSource;
+ UpdateFullscreenOverride (ServiceManager.SourceManager.ActiveSource);
return this.source != null;
}
diff --git a/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingSource.cs b/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingSource.cs
index ceeb4fd..ea538bc 100644
--- a/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingSource.cs
+++ b/src/Extensions/Banshee.NowPlaying/Banshee.NowPlaying/NowPlayingSource.cs
@@ -98,19 +98,5 @@ namespace Banshee.NowPlaying
OnUserNotifyUpdated ();
}
}
-
- public override void Activate ()
- {
- /*if (now_playing_interface != null) {
- now_playing_interface.OverrideFullscreen ();
- }*/
- }
-
- public override void Deactivate ()
- {
- /*if (now_playing_interface != null) {
- now_playing_interface.RelinquishFullscreen ();
- }*/
- }
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]