I can reproduce this bug here on sid. Your patch seems to work for me,
but I'm not sure whether it's the best solution to just put the process
in the background. The attached patch uses a additional dcop call to
check whether kscreensaver is already running and only calls 'lock' in
case it's not.

Cheers, Tobias

--- lock.orig   2006-09-09 10:39:56.000000000 +0200
+++ lock        2006-09-09 10:42:10.000000000 +0200
@@ -46,8 +46,12 @@
     # send the lock command to all sessions
     for session in $avail_sessions; do
        vecho 1 "Locking $session"
-       # dev/null because dcop warns if it can't connect to X (this is normal!)
-       dcop --session "$session" --all-users kdesktop KScreensaverIface lock > 
/dev/null 2>&1
+
+       already_blanked=`dcop --session "$session" --all-users kdesktop 
KScreensaverIface isBlanked`
+       if [ x"$already_blanked" != "xfalse" ] ; then
+               # dev/null because dcop warns if it can't connect to X (this is 
normal!)
+               dcop --session "$session" --all-users kdesktop 
KScreensaverIface lock > /dev/null 2>&1
+       fi
     done
 
     # returning 0 because dcop warns if it can't connect to X (this is normal!)

Reply via email to