Sophie

Sophie

distrib > Mandriva > 2007.1 > x86_64 > by-pkgid > 72682f97789893cb05925a6c35ec9c08 > files > 2

gnome-panel-2.18.0-5mdv2007.1.src.rpm

--- gnome-panel-2.13.5/gnome-panel/panel-util.c.rootlock	2006-01-11 21:42:40.000000000 +0100
+++ gnome-panel-2.13.5/gnome-panel/panel-util.c	2006-01-17 10:18:42.000000000 +0100
@@ -685,22 +685,24 @@
 	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) {
 		if (use_gscreensaver) {
 			command = g_strdup_printf ("gnome-screensaver-command --%s", action);
-		} else {
+		} else if (getuid()) {
 			command = g_strdup_printf ("xscreensaver-command -%s", action);
 		}
 	}
--- gnome-panel-2.13.5/gnome-panel/panel-action-button.c.rootlock	2006-01-16 21:44:11.000000000 +0100
+++ gnome-panel-2.13.5/gnome-panel/panel-action-button.c	2006-01-17 10:12:48.000000000 +0100
@@ -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"
 
@@ -115,23 +117,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