tag 511248 patch
thanks

  Hello,

Per Olofsson wrote:
> Vincent Fourmond wrote:
>>   I'm tagging this bug as severity serious as it breaks xine-ui. Feel
>> free to downgrade if you think I'm excessive.
> 
> Yes, I think it is excessive. It doesn't "break" anything in that way.
> Xine is not broken just because it doesn't turn off the screensaver -
> it still works, you can disable the screensaver manually or move your
> mouse or whatever.
> 
> Downgrading.

  Fine. As a bonus, here are several patches that people sent me and
that do the trick for me; please pick one up ;-) !

  Regards,

        Vincent

-- 
Vincent Fourmond, Debian Developer
http://vince-debian.blogspot.com/

Au royaume des aveugles, il y a des borgnes à ne pas dépasser.
  -- Soeur Marie-Thérèse des Batignoles (Maëster)

Vincent, listening to Joyride (Single Edit) (Roxette)
Patch by Ben Hutchings <[email protected]>

--- xdg-utils-1.0.2.orig/scripts/xdg-screensaver
+++ xdg-utils-1.0.2/scripts/xdg-screensaver
@@ -334,6 +334,7 @@
     if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;
     elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;
     elif xprop -root _DT_SAVE_MODE | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;
+    else DE='';
     fi
 }
 
@@ -424,8 +425,12 @@
     xscreensaver)
       screensaver_xscreensaver "$1"
       ;;
-  esac
 
+    '')
+      screensaver_xserver "$1"
+      ;;
+  esac
+	  
   if [ "$1" = "suspend" ] ; then
       # Save DPMS state
       if xset -q | grep 'DPMS is Enabled' > /dev/null 2> /dev/null; then
@@ -584,6 +589,49 @@
     esac
 }
 
+screensaver_xserver()
+{
+    case "$1" in
+        suspend) 
+        xset s off > /dev/null
+        result=$?
+        ;;
+
+        resume)
+        xset s default > /dev/null
+        result=$?
+        ;;
+        
+        activate)
+        xset s activate > /dev/null
+        result=$?
+        ;;
+
+        reset)
+        xset s reset > /dev/null
+        result=$?
+        ;;
+
+        status)
+        timeout=`xset q | sed '/^Screen Saver:/,/^[^ ]/ { s/.*timeout: *\([0-9]*\).*/\1/; t }; d'`
+        result=$?
+        if [ "$timeout" -gt 0 ]; then
+            echo "enabled"
+        elif [ "$timeout" -eq 0 ]; then
+            echo "disabled"
+        else
+            echo "ERROR:  xset q did not report the screensaver timeout" >&2
+            return 1
+        fi
+        ;;
+
+        *)
+        echo "ERROR:  Unknown command '$1'" >&2
+        return 1
+        ;;
+    esac
+}
+
 screensaver_suspend_loop()
 {
   lockfile
Patch by Jan Echternach <[email protected]>
--- /usr/bin/xdg-screensaver.orig	2009-01-02 18:53:08.000000000 +0100
+++ /usr/bin/xdg-screensaver	2009-01-09 23:48:18.000000000 +0100
@@ -424,6 +424,10 @@
     xscreensaver)
       screensaver_xscreensaver "$1"
       ;;
+
+    xset)
+      screensaver_xset "$1"
+      ;;
   esac
 
   if [ "$1" = "suspend" ] ; then
@@ -710,6 +714,54 @@
     esac
 }
 
+screensaver_xset()
+{
+    case "$1" in
+        suspend) 
+        # FIXME: The effect of "xset s reset" to delay screen saver
+        # activation is undocumented.  According to xset(1), it simply
+        # deactivates a currently active screensaver.
+        screensaver_suspend_loop xset s reset
+        result=0
+        ;;
+
+        resume)
+        # Automatic resume when $screensaver_file disappears
+        result=0
+        ;;
+        
+        activate)
+        xset s activate > /dev/null 2> /dev/null
+        result=$?
+        ;;
+
+        lock)
+        echo "ERROR: 'lock' not supported" >&2
+        result=1
+        ;;
+        
+        reset)
+        # Turns the screensaver off right now
+        xset s reset > /dev/null 2> /dev/null
+        result=$?
+        ;;
+
+        status)
+        result=0
+        if [ -f "$screensaver_file" ] ; then
+            echo "disabled"
+        else
+            echo "enabled"
+        fi
+        ;;
+
+        *)
+        echo "ERROR:  Unknown command '$1" >&2
+        return 1
+        ;;
+    esac
+}
+
 [ x"$1" != x"" ] || exit_failure_syntax
 
 action=
@@ -767,6 +819,10 @@
 # Consider "xscreensaver" a separate DE
 xscreensaver-command -version 2> /dev/null | grep XScreenSaver > /dev/null && DE="xscreensaver"
 
+# Use "xset s" as a fallback if there's no desktop environment and no
+# xscreensaver process running.
+test -z "$DE" && DE="xset"
+
 if [ "$action" = "resume" ] ; then
     do_resume
     exit_success

Reply via email to