--- 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)
- {
-