]> code.delx.au - bg-scripts/blobdiff - lib/WallChanger.py
Fixed WallChanger to fall back on getNextRandomImage() if getCurrentImage() is not...
[bg-scripts] / lib / WallChanger.py
index c6958a84dd958dada1418c3dd755c3968ded560b..1281add7c2e744aa18bcc9684c49ad8b648fed1e 100644 (file)
@@ -2,6 +2,7 @@
 
 import commands, sys, os, os.path, subprocess, time
 from GregDebug import debug, setDebugLevel, DEBUG_LEVEL_DEBUG, DEBUG_LEVEL_LOW, DEBUG_LEVEL_MEDIUM, DEBUG_LEVEL_HIGH, DEBUG_INCREMENT
+import FileLists
 
 import python24_adapter # NB: Must be imported before collections
 import collections
@@ -37,6 +38,13 @@ def RandomBG(*args, **kwargs):
                else:
                        ret = __KDEChanger(*args, **kwargs)
 
+       debug("Testing for Gnome", DEBUG_LEVEL_LOW)
+       if commands.getstatusoutput("xwininfo -name 'gnome-session'")[0] == 0:
+               if ret is not None:
+                       ret.nextChanger = __GnomeChanger(*args, **kwargs)
+               else:
+                       ret = __GnomeChanger(*args, **kwargs)
+
        debug("Testing for WMaker", DEBUG_LEVEL_LOW)
        if commands.getstatusoutput("xlsclients | grep -qi wmaker")[0] == 0:
                if ret is not None:
@@ -73,8 +81,11 @@ class __BaseChanger(object):
                return self.changeTo(file) and self.callChained(file)
        
        def cycleReload(self):
-               file = self.filelist.getCurrentImage()
-               return self.changeTo(file) and self.callChained(file)
+               try:
+                       file = self.filelist.getCurrentImage()
+                       return self.changeTo(file) and self.callChained(file)
+               except FileLists.FileListNotImplemented:
+                       return self.cycleNext()
 
 
 class __WMakerChanger(__BaseChanger):