patches/xscreensaver-08-passwdTimeout-pref.diff
changeset 18061 1ad14cf3c086
parent 18039 93dd6ed68b16
child 18077 cf2df829a4db
--- a/patches/xscreensaver-08-passwdTimeout-pref.diff	Wed Jun 02 03:23:43 2010 +0000
+++ b/patches/xscreensaver-08-passwdTimeout-pref.diff	Wed Jun 02 03:25:58 2010 +0000
@@ -44,105 +44,123 @@
 diff --git xscreensaver-5.11/driver/demo-Gtk.c xscreensaver-5.11/driver/demo-Gtk.c
 --- xscreensaver-5.11/driver/demo-Gtk.c
 +++ xscreensaver-5.11/driver/demo-Gtk.c
-@@ -1537,6 +1537,9 @@ flush_dialog_changes_and_save (state *s)
+@@ -1537,6 +1537,8 @@ flush_dialog_changes_and_save (state *s)
  
    MINUTES  (&p2->timeout,         "timeout_spinbutton");
    MINUTES  (&p2->cycle,           "cycle_spinbutton");
-+  /*bugid 5077981 pwd */
-+  CHECKBOX (p2->pwd_p,            "pwd_button");
++  CHECKBOX (p2->pwd_p,            "pwd_button");	/* bugid 5077981 */
 +  MINUTES  (&p2->passwd_timeout,  "pwd_spinbutton");
    CHECKBOX (p2->lock_p,           "lock_button");
    MINUTES  (&p2->lock_timeout,    "lock_spinbutton");
  
-@@ -1628,6 +1631,9 @@ flush_dialog_changes_and_save (state *s)
+@@ -1628,6 +1630,8 @@ flush_dialog_changes_and_save (state *s)
    COPY(cycle,          "cycle");
    COPY(lock_p,         "lock_p");
    COPY(lock_timeout,   "lock_timeout");
-+/*bugid 5077981 pwd */
-+  COPY(pwd_p,          "pwd_p");
++  COPY(pwd_p,          "pwd_p");		/* bugid 5077981 */
 +  COPY(passwd_timeout, "passwd_timeout");
  
    COPY(dpms_enabled_p, "dpms_enabled_p");
    COPY(dpms_standby,   "dpms_standby");
-@@ -2757,6 +2763,8 @@ populate_prefs_page (state *s)
+@@ -2757,6 +2761,9 @@ populate_prefs_page (state *s)
    FMT_MINUTES ("timeout_spinbutton",      p->timeout);
    FMT_MINUTES ("cycle_spinbutton",        p->cycle);
    FMT_MINUTES ("lock_spinbutton",         p->lock_timeout);
-+  /*bugid 5077981 pwd */
++  /* bugid 5077981 */
 +  FMT_MINUTES ("pwd_spinbutton",          p->passwd_timeout);
++
    FMT_MINUTES ("dpms_standby_spinbutton", p->dpms_standby);
    FMT_MINUTES ("dpms_suspend_spinbutton", p->dpms_suspend);
    FMT_MINUTES ("dpms_off_spinbutton",     p->dpms_off);
-@@ -2768,6 +2776,10 @@ populate_prefs_page (state *s)
- # define TOGGLE_ACTIVE(NAME,ACTIVEP) \
+@@ -2769,6 +2776,7 @@ populate_prefs_page (state *s)
    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (name_to_widget (s,(NAME))),\
                                  (ACTIVEP))
-+/*bugid 5077981 pwd */
-+
-+
-+  TOGGLE_ACTIVE ("pwd_button",       p->pwd_p);
  
++  TOGGLE_ACTIVE ("pwd_button",	      p->pwd_p); /* bugid 5077981 */
    TOGGLE_ACTIVE ("lock_button",       p->lock_p);
  #if 0
-@@ -2873,6 +2885,10 @@ populate_prefs_page (state *s)
+   TOGGLE_ACTIVE ("verbose_button",    p->verbose_p);
+@@ -2873,6 +2881,10 @@ populate_prefs_page (state *s)
  
      /* Blanking and Locking
       */
-+    /*bugid 5077081 pwd */
++    /* bugid 5077081 */
 +    SENSITIZE ("pwd_spinbutton", p->pwd_p);
 +    SENSITIZE ("pwd_mlabel",     p->pwd_p);
 +
      SENSITIZE ("lock_button",     can_lock_p);
      SENSITIZE ("lock_spinbutton", can_lock_p && p->lock_p);
      SENSITIZE ("lock_mlabel",     can_lock_p && p->lock_p);
-@@ -3041,9 +3057,12 @@ fix_text_entry_sizes (state *s)
- {
-   GtkWidget *w;
- 
-+/*bugid 5077981 pwd */
-+
+@@ -3044,6 +3056,7 @@ fix_text_entry_sizes (state *s)
  # if 0   /* appears no longer necessary with Gtk 1.2.10 */
    const char * const spinbuttons[] = {
      "timeout_spinbutton", "cycle_spinbutton", "lock_spinbutton",
-+    "pwd_spinbutton",
++    "pwd_spinbutton", /* bugid 5077981 */
      "dpms_standby_spinbutton", "dpms_suspend_spinbutton",
      "dpms_off_spinbutton",
      "-fade_spinbutton" };
+diff --git xscreensaver-5.11/driver/lock.c xscreensaver-5.11/driver/lock.c
+--- xscreensaver-5.11/driver/lock.c
++++ xscreensaver-5.11/driver/lock.c
+@@ -1536,6 +1536,10 @@ update_passwd_window (saver_info *si, const char *printed_passwd, float ratio)
+       event.xclient.data.l[1] = 0;
+       event.xclient.data.l[2] = 0;
+ 
++      /* CR 6176524 passwdTimeoutEnable for disabled user */
++      if (! si->prefs.pwd_p)
++        event.xclient.data.l[1] = 1;
++
+       XSync (si->dpy, False);
+       old_handler = XSetErrorHandler (ignore_all_errors_ehandler);
+ 
+@@ -2442,6 +2446,20 @@ passwd_event_loop (saver_info *si)
+               XSync (si->dpy, False);
+               XSetErrorHandler (old_handler);
+ 
++              /* CR 6176524 passwdTimeoutEnable for disabled user
++               * 6240938 screensaver-lock's password timer needs to to be reset
++                 for each key (all users)
++               */
++
++	      if ((status) && (p->pwd_p)  && (pw->timer))
++		{
++		  XtRemoveTimeOut (pw->timer);
++		  pw->ratio = 1.0;
++		  pw->timer = XtAppAddTimeOut (si->app, 166,
++					       passwd_animate_timer,
++					       (XtPointer) si);
++		}
++
+               if (p->verbose_p)
+                 {
+                   if (status)
 diff --git xscreensaver-5.11/driver/prefs.c xscreensaver-5.11/driver/prefs.c
 --- xscreensaver-5.11/driver/prefs.c
 +++ xscreensaver-5.11/driver/prefs.c
-@@ -243,6 +243,7 @@ get_byte_resource (Display *dpy, char *name, char *class)
-   return n;
- }
- 
-+/* *bugid 5077981 pwd timeout */
- 
- static const char * const prefs[] = {
-   "timeout",
-@@ -251,6 +252,7 @@ static const char * const prefs[] = {
+@@ -251,6 +251,7 @@ static const char * const prefs[] = {
    "lockVTs",			/* not saved */
    "lockTimeout",
    "passwdTimeout",
-+  "passwdTimeoutEnabled",
++  "passwdTimeoutEnabled",	/* bugid 5077981 */
    "visualID",
    "installColormap",
    "verbose",
-@@ -782,6 +784,9 @@ write_init_file (Display *dpy,
+@@ -782,6 +783,9 @@ write_init_file (Display *dpy,
        CHECK("lockVTs")		continue;  /* don't save, unused */
        CHECK("lockTimeout")	type = pref_time, t = p->lock_timeout;
        CHECK("passwdTimeout")	type = pref_time, t = p->passwd_timeout;
 +
-+/* *bugid 5077981 pwd timeout */
-+      CHECK("passwdTimeoutEnabled")		type = pref_bool, b = p->pwd_p;
++/* bugid 5077981 */
++      CHECK("passwdTimeoutEnabled") type = pref_bool, b = p->pwd_p;
        CHECK("visualID")		type = pref_str,  s =    visual_name;
        CHECK("installColormap")	type = pref_bool, b = p->install_cmap_p;
        CHECK("verbose")		type = pref_bool, b = p->verbose_p;
-@@ -1064,6 +1069,8 @@ load_init_file (Display *dpy, saver_preferences *p)
+@@ -1064,6 +1068,8 @@ load_init_file (Display *dpy, saver_preferences *p)
    p->lock_timeout    = 1000 * get_minutes_resource (dpy, "lockTimeout", "Time");
    p->cycle           = 1000 * get_minutes_resource (dpy, "cycle", "Time");
    p->passwd_timeout  = 1000 * get_seconds_resource (dpy, "passwdTimeout", "Time");
-+  /* *bugid 5077981 pwd timeout */
-+  p->pwd_p	    = get_boolean_resource (dpy, "passwdTimeoutEnabled", "Boolean");
++  /* bugid 5077981 */
++  p->pwd_p           = get_boolean_resource (dpy, "passwdTimeoutEnabled", "Boolean");
    p->pointer_timeout = 1000 * get_seconds_resource (dpy, "pointerPollTime", "Time");
    p->pointer_hysteresis = get_integer_resource (dpy, "pointerHysteresis","Integer");
    p->notice_events_timeout = 1000*get_seconds_resource(dpy,
@@ -266,39 +284,4 @@
  			<widget class="GtkLabel" id="timeout_label">
  			  <property name="visible">True</property>
  			  <property name="label" translatable="yes">_Blank After</property>
-diff --git xscreensaver-5.11/driver/lock.c xscreensaver-5.11/driver/lock.c
---- xscreensaver-5.11/driver/lock.c
-+++ xscreensaver-5.11/driver/lock.c
-@@ -2075,6 +2075,10 @@ passwd_animate_timer (XtPointer closure, XtIntervalId *id)
-       event.xclient.data.l[1] = 0;
-       event.xclient.data.l[2] = 0;
- 
-+      /* CR 6176524 passwdTimeoutEnable for disabled user */
-+      if (! si->prefs.pwd_p)
-+        event.xclient.data.l[1] = 1;
-+
-       XSync (si->dpy, False);
-       old_handler = XSetErrorHandler (ignore_all_errors_ehandler);
- 
-@@ -2309,6 +2313,19 @@ passwd_event_loop (saver_info *si)
-               XSync (si->dpy, False);
-               XSetErrorHandler (old_handler);
- 
-+              /* CR 6176524 passwdTimeoutEnable for disabled user
-+               * 6240938 screensaver-lock's password timer needs to to be reset
-+                 for each key (all users)
-+               */
-+
-+	      if ((status) && (p->pwd_p)  && (pw->timer))
-+		{
-+		  XtRemoveTimeOut (pw->timer);
-+		  pw->ratio = 1.0;
-+		  pw->timer = XtAppAddTimeOut (si->app, 166,
-+					       passwd_animate_timer,
-+					       (XtPointer) si);
-+		}
- 
- 	      if (p->verbose_p)
- 		{
 
-