banshee r4316 - in trunk/banshee: . src/Backends/Banshee.Gnome/Banshee.GnomeBackend



Author: gburt
Date: Thu Jul 31 21:30:25 2008
New Revision: 4316
URL: http://svn.gnome.org/viewvc/banshee?rev=4316&view=rev

Log:
2008-07-31  Gabriel Burt  <gabriel burt gmail com>

	* src/Backends/Banshee.Gnome/Banshee.GnomeBackend/GnomeScreensaverManager.cs:
	Log a friendlier warning when the GNOME screensaver isn't running (BGO
	#545600).


Modified:
   trunk/banshee/ChangeLog
   trunk/banshee/src/Backends/Banshee.Gnome/Banshee.GnomeBackend/GnomeScreensaverManager.cs

Modified: trunk/banshee/src/Backends/Banshee.Gnome/Banshee.GnomeBackend/GnomeScreensaverManager.cs
==============================================================================
--- trunk/banshee/src/Backends/Banshee.Gnome/Banshee.GnomeBackend/GnomeScreensaverManager.cs	(original)
+++ trunk/banshee/src/Backends/Banshee.Gnome/Banshee.GnomeBackend/GnomeScreensaverManager.cs	Thu Jul 31 21:30:25 2008
@@ -49,31 +49,40 @@
 
         public GnomeScreensaverManager ()
         {
-            if(!Bus.Session.NameHasOwner (DBUS_INTERFACE)) {
-                throw new ApplicationException (String.Format ("Could not find {0}", DBUS_INTERFACE));
+            if (Manager == null) {
+                Hyena.Log.Information ("GNOME screensaver service not found");
             }
-            
-            manager = Bus.Session.GetObject<IGnomeScreensaver> (DBUS_INTERFACE,
-                                                                new ObjectPath (DBUS_PATH));
-            
-            if (manager == null) {
-                throw new ApplicationException (String.Format ("The {0} object could not be located on the DBus interface {1}",
-                                                               DBUS_PATH, DBUS_INTERFACE));
+        }
+
+        private IGnomeScreensaver Manager {
+            get {
+                if (manager == null) {
+                    if (!Bus.Session.NameHasOwner (DBUS_INTERFACE)) {
+                        return null;
+                    }
+                    
+                    manager = Bus.Session.GetObject<IGnomeScreensaver> (DBUS_INTERFACE, new ObjectPath (DBUS_PATH));
+                    
+                    if (manager == null) {
+                        Hyena.Log.ErrorFormat ("The {0} object could not be located on the DBus interface {1}",
+                            DBUS_PATH, DBUS_INTERFACE);
+                    }
+                }
+                return manager;
             }
         }
         
         public void Inhibit ()
         {
-            if (!cookie.HasValue) {
-                cookie = manager.Inhibit ("Banshee", 
-                                          Catalog.GetString ("Fullscreen video playback active"));
+            if (!cookie.HasValue && Manager != null) {
+                cookie = Manager.Inhibit ("Banshee", Catalog.GetString ("Fullscreen video playback active"));
             }
         }
 
         public void UnInhibit ()
         {
-            if (cookie.HasValue) {
-                manager.UnInhibit (cookie.Value);
+            if (cookie.HasValue && Manager != null) {
+                Manager.UnInhibit (cookie.Value);
                 cookie = null;
             }
         }



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