--- libvo/x11_common.c.orig 2006-01-18 15:48:29.000000000 +0100 +++ libvo/x11_common.c 2006-01-18 16:14:58.000000000 +0100 @@ -72,6 +72,7 @@ static int dpms_disabled = 0; static int timeout_save = 0; static int kdescreensaver_was_running = 0; +static int gnome_screensaver_was_running = 0; char *mDisplayName = NULL; Display *mDisplay = NULL; @@ -1675,6 +1676,12 @@ ("dcop kdesktop KScreensaverIface enable true 2>/dev/null >/dev/null"); kdescreensaver_was_running = 0; } + if (gnome_screensaver_was_running && stop_xscreensaver) + { + system + ("dbus-send --session --dest=org.gnome.ScreenSaver --type=method_call /org/gnome/ScreenSaver org.gnome.ScreenSaver.AllowActivation 2>/dev/null >/dev/null"); + gnome_screensaver_was_running = 0; + } } @@ -1725,6 +1732,14 @@ system ("dcop kdesktop KScreensaverIface enable false 2>/dev/null >/dev/null"); } + if (stop_xscreensaver && !gnome_screensaver_was_running) + { + // no way to query gnome-screensaver for the enabled/disabled status + gnome_screensaver_was_running = 1; + if (gnome_screensaver_was_running) + system + ("dbus-send --session --dest=org.gnome.ScreenSaver --type=method_call /org/gnome/ScreenSaver org.gnome.ScreenSaver.InhibitActivation string:MPlayer 2>/dev/null >/dev/null"); + } } static XErrorHandler old_handler = NULL;