components/desktop/xscreensaver/patches/0006-allow-root.patch
changeset 7818 c93a988b3522
parent 5561 0416d82f7f55
--- a/components/desktop/xscreensaver/patches/0006-allow-root.patch	Wed Mar 29 13:16:33 2017 -0700
+++ b/components/desktop/xscreensaver/patches/0006-allow-root.patch	Thu Mar 30 13:00:52 2017 -0700
@@ -1,4 +1,4 @@
-From 53a079ae5ba815381fd94cace1a56cd2841e09ed Mon Sep 17 00:00:00 2001
+From 42a34d66f5455bb0899f189a38539affbae0e212 Mon Sep 17 00:00:00 2001
 From: Alan Coopersmith <[email protected]>
 Date: Sat, 2 Jan 2016 20:56:50 -0800
 Subject: [PATCH] allow root
@@ -13,19 +13,19 @@
 
 See http://www.jwz.org/xscreensaver/faq.html#root-lock for his side.
 ---
- driver/demo-Gtk.c     | 18 ++++++++++++++++++
+ driver/demo-Gtk.c     | 15 +++++++++++++++
  driver/exec.c         |  2 ++
  driver/setuid.c       | 12 ++++++++++++
  driver/subprocs.c     |  3 +++
  driver/timers.c       |  2 +-
  driver/xscreensaver.c |  7 ++++---
- 6 files changed, 40 insertions(+), 4 deletions(-)
+ 6 files changed, 37 insertions(+), 4 deletions(-)
 
 diff --git a/driver/demo-Gtk.c b/driver/demo-Gtk.c
-index ece3c44..d4cc4a5 100644
+index d62152c..f6f9c19 100644
 --- a/driver/demo-Gtk.c
 +++ b/driver/demo-Gtk.c
-@@ -713,6 +713,14 @@ run_hack (state *s, int list_elt, Bool report_errors_p)
+@@ -723,6 +723,14 @@ run_hack (state *s, int list_elt, Bool report_errors_p)
    char *err = 0;
    int status;
  
@@ -40,30 +40,20 @@
    if (list_elt < 0) return;
    hack_number = s->list_elt_to_hack_number[list_elt];
  
-@@ -5173,6 +5181,15 @@ main (int argc, char **argv)
-     GtkMenu *menu = GTK_MENU (gtk_option_menu_get_menu (opt));
-     GList *kids = gtk_container_children (GTK_CONTAINER (menu));
-     int i;
-+
-+    if (getuid () == 0)
-+      {
-+        /* If logged in as root disable menu so user can't activate a hack. */
-+        gtk_widget_set_sensitive (GTK_WIDGET (opt), False);
-+        gtk_widget_set_sensitive (GTK_WIDGET (menu), False);
-+      }
-+    else
+@@ -5163,6 +5171,13 @@ main (int argc, char **argv)
+                       (gpointer) s);
+ #endif /* !HAVE_GTK2 */
+ 
++  if (getuid () == 0)
 +    {
-     for (i = 0; kids; kids = kids->next, i++)
-       {
-         gtk_signal_connect (GTK_OBJECT (kids->data), "activate",
-@@ -5186,6 +5203,7 @@ main (int argc, char **argv)
-             mode_menu_order[i] == RANDOM_HACKS_SAME)
-           gtk_widget_hide (GTK_WIDGET (kids->data));
-       }
++      /* If logged in as root disable menu so user can't activate a hack. */
++      gtk_widget_set_sensitive (GTK_WIDGET (name_to_widget (s, "mode_menu")),
++				False);
 +    }
- 
-     if (s->nscreens <= 1)   /* recompute option-menu size */
-       {
++  else
+   /* Hook up callbacks to the items on the mode menu. */
+   gtk_signal_connect (GTK_OBJECT (name_to_widget (s, "mode_menu")),
+                       "changed", GTK_SIGNAL_FUNC (mode_menu_item_cb),
 diff --git a/driver/exec.c b/driver/exec.c
 index 38ca88a..b68089e 100644
 --- a/driver/exec.c
@@ -204,5 +194,5 @@
        else
          for (i = 0; i < si->nscreens; i++)
 -- 
-2.6.1
+2.7.4