try to run gnome-screensaver, and if that fails, run xscreensaver.

2005-07-20  Rodrigo Moya <rodrigo@novell.com>

	* gnome-settings-screensaver.c (gnome_settings_screensaver_load):
	* gnome-settings-multimedia-keys.c (do_action): try to run
	gnome-screensaver, and if that fails, run xscreensaver.
This commit is contained in:
Rodrigo Moya 2005-07-25 11:55:59 +00:00 committed by Rodrigo Moya
parent cf87a9a2c9
commit 6e25211b2f
3 changed files with 37 additions and 5 deletions

View file

@ -1,3 +1,9 @@
2005-07-20 Rodrigo Moya <rodrigo@novell.com>
* gnome-settings-screensaver.c (gnome_settings_screensaver_load):
* gnome-settings-multimedia-keys.c (do_action): try to run
gnome-screensaver, and if that fails, run xscreensaver.
2005-07-12 Sebastien Bacher <seb128@debian.org>
* modmap-dialog.glade: fix a label form (Closes: #167739).

View file

@ -804,6 +804,8 @@ do_sound_action (Acme *acme, int type)
static void
do_action (Acme *acme, int type)
{
gchar *cmd;
switch (type) {
case MUTE_KEY:
case VOLUME_DOWN_KEY:
@ -829,7 +831,12 @@ do_action (Acme *acme, int type)
do_sleep_action ("apm", "xset dpms force off");
break;
case SCREENSAVER_KEY:
execute ("xscreensaver-command -lock", FALSE);
if ((cmd = g_find_program_in_path ("gnome-screensaver-command")))
execute ("gnome-screensaver-command --lock", FALSE);
else
execute ("xscreensaver-command -lock", FALSE);
g_free (cmd);
break;
case HELP_KEY:
do_help_action (acme);

View file

@ -35,6 +35,7 @@
#define START_SCREENSAVER_KEY "/apps/gnome_settings_daemon/screensaver/start_screensaver"
#define SHOW_STARTUP_ERRORS_KEY "/apps/gnome_settings_daemon/screensaver/show_startup_errors"
#define XSCREENSAVER_COMMAND "xscreensaver -nosplash"
#define GSCREENSAVER_COMMAND "gnome-screensaver"
void
gnome_settings_screensaver_init (GConfClient *client)
@ -42,8 +43,12 @@ gnome_settings_screensaver_init (GConfClient *client)
/*
* do nothing.
*
* our settings only apply to startup, and the screensaver
* settings are all in xscreensaver and not gconf.
* with gnome-screensaver, all settings are loaded internally
* from gconf at startup
*
* with xscreensaver, our settings only apply to startup, and
* the screensaver settings are all in xscreensaver and not
* gconf.
*
* we could have xscreensaver-demo run gconftool-2 directly,
* and start / stop xscreensaver here
@ -69,16 +74,30 @@ void
gnome_settings_screensaver_load (GConfClient *client)
{
GError *gerr = NULL;
gboolean start_screensaver;
gboolean start_screensaver, use_gscreensaver = FALSE;
gboolean show_error;
GtkWidget *dialog, *toggle;
gchar *ss_command;
start_screensaver = gconf_client_get_bool (client, START_SCREENSAVER_KEY, NULL);
if (!start_screensaver)
return;
if (g_spawn_command_line_async (XSCREENSAVER_COMMAND, &gerr))
if ((ss_command = g_find_program_in_path ("gnome-screensaver")))
use_gscreensaver = TRUE;
else {
if (!(ss_command = g_find_program_in_path ("xscreensaver")))
return;
}
g_free (ss_command);
if (use_gscreensaver)
ss_command = GSCREENSAVER_COMMAND;
else
ss_command = XSCREENSAVER_COMMAND;
if (g_spawn_command_line_async (ss_command, &gerr))
return;
show_error = gconf_client_get_bool (client, SHOW_STARTUP_ERRORS_KEY, NULL);