Sophie

Sophie

distrib > Mandriva > 2007.1 > i586 > by-pkgid > e8a774aba1eedf2701a3ec210bacc4f6 > files > 4

gnome-panel-2.18.1-1mdv2007.1.src.rpm

--- gnome-panel-2.18.1/gnome-panel/panel-util.c.rootlock	2007-04-10 21:16:55.000000000 +0200
+++ gnome-panel-2.18.1/gnome-panel/panel-util.c	2007-04-11 07:48:38.000000000 +0200
@@ -732,17 +732,19 @@
 	if (panel_is_program_in_path ("gnome-screensaver-command")
 	    && panel_is_program_in_path ("gnome-screensaver-preferences"))
 		use_gscreensaver = TRUE;
-	else if (!panel_is_program_in_path ("xscreensaver-command"))
+	else if (!(getuid() == 0) && panel_is_program_in_path ("xlockmore") && !((getuid() != 0) && panel_is_program_in_path ("xscreensaver-command")))
 		return NULL;
 
 	if (strcmp (action, "prefs") == 0) {
 		if (use_gscreensaver) {
 			command = g_strdup ("gnome-screensaver-preferences");
-		} else if (panel_is_program_in_path ("xscreensaver-demo")) {
+		} else if (getuid() && panel_is_program_in_path ("xscreensaver-demo")) {
 			command = g_strdup ("xscreensaver-demo");
 		} else {
 			command = NULL;
 		}
+	} else if (getuid () == 0 && strcmp( action, "lock") == 0) {
+		command = g_strdup ("xlock");
 	} else if (strcmp (action, "activate") == 0
 		   || strcmp (action, "lock") == 0) {
 		/* Neither gnome-screensaver or xscreensaver allow root
--- gnome-panel-2.18.1/gnome-panel/panel-action-button.c.rootlock	2007-04-10 21:16:55.000000000 +0200
+++ gnome-panel-2.18.1/gnome-panel/panel-action-button.c	2007-04-11 07:46:35.000000000 +0200
@@ -27,6 +27,8 @@
 #include <config.h>
 #include <string.h>
 #include <stdlib.h>
+#include <unistd.h>
+#include <sys/types.h>
 
 #include "panel-action-button.h"
 
@@ -119,23 +121,25 @@
 static void
 panel_action_lock_setup_menu (PanelActionButton *button)
 {
+   if (getuid() != 0) {
 	panel_applet_add_callback (button->priv->info,
 				   "activate",
 				   NULL,
 				   _("_Activate Screensaver"),
 				   screensaver_enabled);
-
+   }
 	panel_applet_add_callback (button->priv->info,
 				   "lock",
 				   NULL,
 				   _("_Lock Screen"),
 				   screensaver_enabled);
-
+   if (getuid() != 0) {
 	panel_applet_add_callback (button->priv->info,
 				   "prefs",
 				   GTK_STOCK_PROPERTIES,
 				   _("_Properties"),
 				   screensaver_properties_enabled);
+  }
 }
 
 static void