diff -Nru xdg-utils-1.1.0~rc1/debian/changelog xdg-utils-1.1.0~rc1/debian/changelog --- xdg-utils-1.1.0~rc1/debian/changelog 2011-07-13 15:51:58.000000000 +0200 +++ xdg-utils-1.1.0~rc1/debian/changelog 2011-10-03 16:06:51.000000000 +0200 @@ -1,3 +1,11 @@ +xdg-utils (1.1.0~rc1-2ubuntu6) oneiric; urgency=low + + * Use D-Bus API for GNOME screensaver + - debian/patches/xdg-screensaver-dbus.patch + - LP: #805386 + + -- Daniel Hahler Mon, 03 Oct 2011 16:06:10 +0200 + xdg-utils (1.1.0~rc1-2ubuntu5) oneiric; urgency=low * rename debian/patches/debian-changes-1.1.0~rc1-2ubuntu4 to diff -Nru xdg-utils-1.1.0~rc1/debian/patches/series xdg-utils-1.1.0~rc1/debian/patches/series --- xdg-utils-1.1.0~rc1/debian/patches/series 2011-07-13 15:48:11.000000000 +0200 +++ xdg-utils-1.1.0~rc1/debian/patches/series 2011-10-03 16:03:10.000000000 +0200 @@ -10,3 +10,4 @@ xdg-update-menu-caonicalize-defaults.list.diff gnome-3.0.diff lp779156-lubuntu.diff +xdg-screensaver-dbus.patch diff -Nru xdg-utils-1.1.0~rc1/debian/patches/xdg-screensaver-dbus.patch xdg-utils-1.1.0~rc1/debian/patches/xdg-screensaver-dbus.patch --- xdg-utils-1.1.0~rc1/debian/patches/xdg-screensaver-dbus.patch 1970-01-01 01:00:00.000000000 +0100 +++ xdg-utils-1.1.0~rc1/debian/patches/xdg-screensaver-dbus.patch 2011-10-03 16:06:03.000000000 +0200 @@ -0,0 +1,93 @@ +Description: Use D-Bus API for GNOME screensaver (BR29860) +Origin: http://cgit.freedesktop.org/xdg/xdg-utils/commit/?id=666d65cae0f2e66d33ec0dc48c054afbf16c9e3f +Bug: https://bugs.freedesktop.org/show_bug.cgi?id=29860 +Ubuntu-Bug: https://bugs.launchpad.net/xdg-utils/+bug/805386 +Author: Michael T. Dean +Reviewed-by: Rex Dieter +Last-Update: 2011-03-31 +Applied-Upstream: http://cgit.freedesktop.org/xdg/xdg-utils/commit/?id=666d65cae0f2e66d33ec0dc48c054afbf16c9e3f + +Index: xdg-utils-1.1.0~rc1/scripts/xdg-screensaver +=================================================================== +--- xdg-utils-1.1.0~rc1.orig/scripts/xdg-screensaver 2011-10-03 16:03:24.499235760 +0200 ++++ xdg-utils-1.1.0~rc1/scripts/xdg-screensaver 2011-10-03 16:03:43.895236218 +0200 +@@ -809,16 +809,18 @@ + + screensaver_gnome_screensaver() + { +-# TODO +-# There seems to be a DBUS interface for gnome-screensaver +-# See http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/2006-April/042579.html and +-# http://cvs.gnome.org/viewcvs/gnome-screensaver/src/gs-listener-dbus.c?rev=1.36&view=log +-# A problem seems to be that Inhibit is tied to the lifetime of the DBUS appname and +-# this can not be used from a script ++# DBUS interface for gnome-screensaver ++# http://people.gnome.org/~mccann/gnome-screensaver/docs/gnome-screensaver.html + case "$1" in + suspend) +- screensaver_suspend_loop gnome-screensaver-command --poke +- result=0 ++ screensaver_suspend_loop \ ++ dbus-send --session \ ++ --dest=org.gnome.ScreenSaver \ ++ --type=method_call \ ++ /org/gnome/ScreenSaver \ ++ org.gnome.ScreenSaver.SimulateUserActivity \ ++ 2> /dev/null ++ result=$? + ;; + + resume) +@@ -827,7 +829,13 @@ + ;; + + activate) +- gnome-screensaver-command --activate > /dev/null 2> /dev/null ++ dbus-send --session \ ++ --dest=org.gnome.ScreenSaver \ ++ --type=method_call \ ++ /org/gnome/ScreenSaver \ ++ org.gnome.ScreenSaver.SetActive \ ++ boolean:true \ ++ 2> /dev/null + result=$? + ;; + +@@ -838,18 +846,31 @@ + + reset) + # Turns the screensaver off right now +- gnome-screensaver-command --deactivate > /dev/null 2> /dev/null ++ dbus-send --session \ ++ --dest=org.gnome.ScreenSaver \ ++ --type=method_call \ ++ /org/gnome/ScreenSaver \ ++ org.gnome.ScreenSaver.SimulateUserActivity \ ++ 2> /dev/null + result=$? + ;; + + status) +- result=0 +- if [ -f "$screensaver_file" ] ; then +- echo "disabled" +- elif gnome-screensaver-command --query > /dev/null 2> /dev/null; then ++ status=`dbus-send --session \ ++ --dest=org.gnome.ScreenSaver \ ++ --type=method_call \ ++ --print-reply \ ++ --reply-timeout=2000 \ ++ /org/gnome/ScreenSaver \ ++ org.gnome.ScreenSaver.GetActive \ ++ | grep boolean | cut -d ' ' -f 5` ++ result=$? ++ if [ x"$status" = "xtrue" -o x"$status" = "xfalse" ]; then + echo "enabled" ++ elif [ x"$result" != "x0" ]; then ++ echo "ERROR: dbus org.gnome.ScreenSaver.GetActive returned '$status'" >&2 ++ return 1 + else +- # Something is wrong + echo "disabled" + fi + ;;