Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(58)

Unified Diff: third_party/xdg-utils/scripts/xdg-screensaver.in

Issue 3273010: Update our copy of xdg-utils to 2010-08-30, and include a patched xdg-mime. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/
Patch Set: Created 10 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/xdg-utils/scripts/xdg-screensaver ('k') | third_party/xdg-utils/scripts/xdg-settings » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/xdg-utils/scripts/xdg-screensaver.in
===================================================================
--- third_party/xdg-utils/scripts/xdg-screensaver.in (revision 57942)
+++ third_party/xdg-utils/scripts/xdg-screensaver.in (working copy)
@@ -26,7 +26,7 @@
#@xdg-utils-common@
-# Check if we can use "mv -T"
+# Check if we can use "mv -T"
if mv -T ... ... 2>&1 | grep '\.\.\.' > /dev/null ; then
# We can securely move files in /tmp with mv -T
DEBUG 1 "mv -T available"
@@ -53,7 +53,7 @@
do
sleep 1
try=$(($try+1))
- if [ $try -eq 3 ] ; then
+ if [ $try -eq 3 ] ; then
rm -f "$screensaver_file".lock || return # Can't remove lockfile
try=0
fi
@@ -86,11 +86,15 @@
case "$DE" in
kde)
- screensaver_kde "$1"
+ if [ x"$KDE_SESSION_VERSION" = x"4" ]; then
+ screensaver_freedesktop "$1"
+ else
+ screensaver_kde "$1"
+ fi
;;
- gnome)
- screensaver_gnome "$1"
+ gnome_screensaver)
+ screensaver_gnome_screensaver "$1"
;;
xscreensaver)
@@ -132,13 +136,13 @@
{
lockfile # Obtain lockfile
# Find the PID of the trackingprocess
- xprop_pid=`grep "$window_id:" "$screensaver_file" 2> /dev/null | cut -d ':' -f 2`
+ xprop_pid=`grep "$window_id:" "$screensaver_file" 2> /dev/null | cut -d ':' -f 2`
unlockfile # Free lockfile
if [ -n "$xprop_pid" ] && ps -p "$xprop_pid" 2> /dev/null | grep xprop > /dev/null; then
- # Kill the tracking process
+ # Kill the tracking process
kill -s TERM $xprop_pid
fi
- cleanup_suspend
+ cleanup_suspend
}
XPROP=`which xprop 2> /dev/null`
@@ -148,7 +152,7 @@
if [ -z "$XPROP" ]; then
DEBUG 3 "xprop not found"
return
- fi
+ fi
DEBUG 2 "Running $XPROP -id $window_id"
if $XPROP -id $window_id > /dev/null 2> /dev/null; then
DEBUG 3 Window $window_id exists
@@ -179,7 +183,7 @@
echo "$wid:$pid"
if [ $wid = $window_id ] ; then
already_tracked=0
- fi
+ fi
fi
done
IFS="$IFS_save"
@@ -211,33 +215,79 @@
{
case "$1" in
suspend)
- #FIXME (get/store cookie)
- qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.Inhibit $window_id xdg-screensaver > /dev/null
+ dbus-send --session \
+ --dest=org.freedesktop.ScreenSaver \
+ --type=method_call \
+ --print-reply \
+ --reply-timeout=2000 \
+ /ScreenSaver \
+ org.freedesktop.ScreenSaver.Inhibit \
+ string:$window_id \
+ string:xdg-screensaver \
+ | grep uint32 | cut -d ' ' -f 5 >| "$screensaver_file.cookie" \
+ 2> /dev/null
result=$?
;;
resume)
- qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.SetActive true > /dev/null
+ if [ -f "$screensaver_file.cookie" ] ; then
+ value=`cat "$screensaver_file.cookie"`
+ dbus-send --session \
+ --dest=org.freedesktop.ScreenSaver \
+ --type=method_call \
+ /ScreenSaver \
+ org.freedesktop.ScreenSaver.UnInhibit \
+ uint32:$value \
+ 2> /dev/null
+ rm -f "$screensaver_file.cookie"
+ fi
result=$?
;;
activate)
- qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.SetActive true > /dev/null
+ dbus-send --session \
+ --dest=org.freedesktop.ScreenSaver \
+ --type=method_call \
+ /ScreenSaver \
+ org.freedesktop.ScreenSaver.SetActive \
+ boolean:true \
+ 2> /dev/null
result=$?
;;
lock)
- qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.Lock > /dev/null
+ dbus-send --session \
+ --dest=org.freedesktop.ScreenSaver \
+ --type=method_call \
+ /ScreenSaver \
+ org.freedesktop.ScreenSaver.Lock \
+ 2> /dev/null
;;
reset)
- #FIXME (cookies?)
- qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.UnInhibit $window_id > /dev/null
+ if [ -f "$screensaver_file.cookie" ] ; then
+ value=`cat "$screensaver_file.cookie"`
+ dbus-send --session \
+ --dest=org.freedesktop.ScreenSaver \
+ --type=method_call \
+ /ScreenSaver \
+ org.freedesktop.ScreenSaver.UnInhibit \
+ uint32:$value \
+ 2> /dev/null
+ rm -f "$screensaver_file.cookie"
+ fi
result=$?
;;
status)
- status=`qdbus org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.GetActive`
+ status=`dbus-send --session \
+ --dest=org.freedesktop.ScreenSaver \
+ --type=method_call \
+ --print-reply \
+ --reply-timeout=2000 \
+ /ScreenSaver \
+ org.freedesktop.ScreenSaver.GetActive \
+ | grep boolean | cut -d ' ' -f 5`
result=$?
if [ x"$status" = "xtrue" ]; then
echo "enabled"
@@ -259,7 +309,7 @@
screensaver_kde()
{
case "$1" in
- suspend)
+ suspend)
dcop kdesktop KScreensaverIface enable false > /dev/null
result=$?
;;
@@ -268,7 +318,7 @@
dcop kdesktop KScreensaverIface configure > /dev/null
result=$?
;;
-
+
activate)
dcop kdesktop KScreensaverIface save > /dev/null
result=$?
@@ -278,7 +328,7 @@
dcop kdesktop KScreensaverIface lock > /dev/null
result=$?
;;
-
+
reset)
# Turns the screensaver off right now
dcop kdesktop KScreensaverIface quit > /dev/null
@@ -325,14 +375,14 @@
# Suspend pending, don't do a thing
$MV "$tmpfile" "$screensaver_file"
unlockfile
- return
+ return
fi
$MV "$tmpfile" "$screensaver_file"
unlockfile
(while [ -f "$screensaver_file" ]; do $*; sleep 50; done) > /dev/null 2> /dev/null &
}
-screensaver_gnome()
+screensaver_gnome_screensaver()
{
# TODO
# There seems to be a DBUS interface for gnome-screensaver
@@ -341,7 +391,7 @@
# 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
case "$1" in
- suspend)
+ suspend)
screensaver_suspend_loop gnome-screensaver-command --poke
result=0
;;
@@ -350,17 +400,17 @@
# Automatic resume when $screensaver_file disappears
result=0
;;
-
+
activate)
gnome-screensaver-command --activate > /dev/null 2> /dev/null
result=$?
;;
-
+
lock)
gnome-screensaver-command --lock > /dev/null 2> /dev/null
result=$?
;;
-
+
reset)
# Turns the screensaver off right now
gnome-screensaver-command --deactivate > /dev/null 2> /dev/null
@@ -389,7 +439,7 @@
screensaver_xscreensaver()
{
case "$1" in
- suspend)
+ suspend)
screensaver_suspend_loop xscreensaver-command -deactivate
result=0
;;
@@ -398,7 +448,7 @@
# Automatic resume when $screensaver_file disappears
result=0
;;
-
+
activate)
xscreensaver-command -activate > /dev/null 2> /dev/null
result=$?
@@ -408,7 +458,7 @@
xscreensaver-command -lock > /dev/null 2> /dev/null
result=$?
;;
-
+
reset)
# Turns the screensaver off right now
xscreensaver-command -deactivate > /dev/null 2> /dev/null
@@ -439,26 +489,26 @@
case $1 in
suspend)
action="$1"
-
+
shift
- if [ -z "$1" ] ; then
+ if [ -z "$1" ] ; then
exit_failure_syntax "WindowID argument missing"
fi
-
+
window_id="$1"
check_window_id
;;
resume)
action="$1"
-
+
shift
- if [ -z "$1" ] ; then
+ if [ -z "$1" ] ; then
exit_failure_syntax "WindowID argument missing"
fi
-
+
window_id="$1"
check_window_id
;;
@@ -478,7 +528,7 @@
status)
action="$1"
;;
-
+
*)
exit_failure_syntax "unknown command '$1'"
;;
@@ -487,6 +537,8 @@
detectDE
# Consider "xscreensaver" a separate DE
xscreensaver-command -version 2> /dev/null | grep XScreenSaver > /dev/null && DE="xscreensaver"
+# Consider "gnome-screensaver" a separate DE
+gnome-screensaver-command -q > /dev/null 2>&1 && DE="gnome_screensaver"
if [ "$action" = "resume" ] ; then
do_resume
@@ -498,7 +550,7 @@
if [ "$action" = "suspend" ] ; then
# Start tracking $window_id and resume the screensaver once it disappears
( track_window ) 2> /dev/null > /dev/null &
-fi
+fi
if [ $result -eq 0 ]; then
exit_success
« no previous file with comments | « third_party/xdg-utils/scripts/xdg-screensaver ('k') | third_party/xdg-utils/scripts/xdg-settings » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698