--- trunk/src/gnome-screensaver-preferences.c 2007/04/02 17:06:48 1149 +++ trunk/src/gnome-screensaver-preferences.c 2007/04/02 17:08:59 1150 @@ -59,6 +59,8 @@ #define KEY_CYCLE_DELAY KEY_DIR "/cycle_delay" #define KEY_THEMES KEY_DIR "/themes" +#define GPM_COMMAND "gnome-power-preferences" + enum { NAME_COLUMN = 0, ID_COLUMN, @@ -429,7 +431,7 @@ error = NULL; res = gdk_spawn_command_line_on_screen (gdk_screen_get_default (), - "gnome-power-preferences", + GPM_COMMAND, &error); if (! res) { g_warning ("Unable to start power management preferences: %s", error->message); @@ -1358,6 +1360,18 @@ return FALSE; } +static gboolean +is_program_in_path (const char *program) +{ + char *tmp = g_find_program_in_path (program); + if (tmp != NULL) { + g_free (tmp); + return TRUE; + } else { + return FALSE; + } +} + static void init_capplet (void) { @@ -1372,6 +1386,7 @@ GtkWidget *lock_checkbox; GtkWidget *root_warning_label; GtkWidget *preview_button; + GtkWidget *gpm_button; GtkWidget *fullscreen_preview_window; GtkWidget *fullscreen_preview_previous; GtkWidget *fullscreen_preview_next; @@ -1414,6 +1429,7 @@ lock_checkbox = glade_xml_get_widget (xml, "lock_checkbox"); root_warning_label = glade_xml_get_widget (xml, "root_warning_label"); preview_button = glade_xml_get_widget (xml, "preview_button"); + gpm_button = glade_xml_get_widget (xml, "gpm_button"); fullscreen_preview_window = glade_xml_get_widget (xml, "fullscreen_preview_window"); fullscreen_preview_area = glade_xml_get_widget (xml, "fullscreen_preview_area"); fullscreen_preview_close = glade_xml_get_widget (xml, "fullscreen_preview_close"); @@ -1428,6 +1444,11 @@ gtk_widget_set_no_show_all (root_warning_label, TRUE); widget_set_best_colormap (preview); + if (! is_program_in_path (GPM_COMMAND)) { + gtk_widget_set_no_show_all (gpm_button, TRUE); + gtk_widget_hide (gpm_button); + } + activate_delay = config_get_activate_delay (&is_writable); ui_set_delay (activate_delay); if (! is_writable) {