--- a/patches/xscreensaver-08-passwdTimeout-pref.diff Fri Jun 04 07:17:41 2010 +0000
+++ b/patches/xscreensaver-08-passwdTimeout-pref.diff Fri Jun 04 07:36:32 2010 +0000
@@ -44,7 +44,7 @@
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,8 @@ flush_dialog_changes_and_save (state *s)
+@@ -1526,6 +1526,8 @@ flush_dialog_changes_and_save (state *s)
MINUTES (&p2->timeout, "timeout_spinbutton");
MINUTES (&p2->cycle, "cycle_spinbutton");
@@ -53,7 +53,7 @@
CHECKBOX (p2->lock_p, "lock_button");
MINUTES (&p2->lock_timeout, "lock_spinbutton");
-@@ -1628,6 +1630,8 @@ flush_dialog_changes_and_save (state *s)
+@@ -1617,6 +1619,8 @@ flush_dialog_changes_and_save (state *s)
COPY(cycle, "cycle");
COPY(lock_p, "lock_p");
COPY(lock_timeout, "lock_timeout");
@@ -62,7 +62,7 @@
COPY(dpms_enabled_p, "dpms_enabled_p");
COPY(dpms_standby, "dpms_standby");
-@@ -2757,6 +2761,9 @@ populate_prefs_page (state *s)
+@@ -2746,6 +2750,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);
@@ -72,7 +72,7 @@
FMT_MINUTES ("dpms_standby_spinbutton", p->dpms_standby);
FMT_MINUTES ("dpms_suspend_spinbutton", p->dpms_suspend);
FMT_MINUTES ("dpms_off_spinbutton", p->dpms_off);
-@@ -2769,6 +2776,7 @@ populate_prefs_page (state *s)
+@@ -2758,6 +2765,7 @@ populate_prefs_page (state *s)
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (name_to_widget (s,(NAME))),\
(ACTIVEP))
@@ -80,7 +80,7 @@
TOGGLE_ACTIVE ("lock_button", p->lock_p);
#if 0
TOGGLE_ACTIVE ("verbose_button", p->verbose_p);
-@@ -2873,6 +2881,10 @@ populate_prefs_page (state *s)
+@@ -2862,6 +2870,10 @@ populate_prefs_page (state *s)
/* Blanking and Locking
*/
@@ -91,7 +91,7 @@
SENSITIZE ("lock_button", can_lock_p);
SENSITIZE ("lock_spinbutton", can_lock_p && p->lock_p);
SENSITIZE ("lock_mlabel", can_lock_p && p->lock_p);
-@@ -3044,6 +3056,7 @@ fix_text_entry_sizes (state *s)
+@@ -3033,6 +3045,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",
@@ -102,7 +102,7 @@
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)
+@@ -1542,6 +1542,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;
@@ -113,27 +113,17 @@
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);
+@@ -2455,7 +2459,9 @@ passwd_event_loop (saver_info *si)
+ /* bugid 6176524 passwdTimeout and reset timer for each key press */
+ passwd_dialog_data *pw = si->pw_data;
-+ /* 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)
+- passwd_animate_timer ((XtPointer) si, 0);
++ /* CR 6176524 passwdTimeoutEnable for disabled user */
++ if (! si->prefs.pwd_p)
++ passwd_animate_timer ((XtPointer) si, 0);
+
+ si->pw_data->got_passwd = FALSE;
+
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