ftp://ftp.linux.ncsu.edu/mirror/ftp.redhat.com/pub/redhat/linux/enterprise/4/en/os...
[xscreensaver] / driver / lock.c
index 6a73ee0c70853de3b9712f08073e78ac67a1f3e0..2aa61f637daa8f9178ee7b31521651f7c9c7d57e 100644 (file)
@@ -1,5 +1,5 @@
 /* lock.c --- handling the password dialog for locking-mode.
- * xscreensaver, Copyright (c) 1993-2002 Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 1993-2004 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -948,9 +948,12 @@ xfree_lock_grab_smasher (saver_info *si, Bool lock_p)
   XSync (si->dpy, False);
   if (error_handler_hit_p) status = 666;
 
+  if (!lock_p && status == MiscExtGrabStateAlready)
+    status = MiscExtGrabStateSuccess;  /* shut up, consider this success */
+
   if (p->verbose_p && status != MiscExtGrabStateSuccess)
-    fprintf (stderr, "%s: error: XF86MiscSetGrabKeysState returned %s\n",
-             blurb(),
+    fprintf (stderr, "%s: error: XF86MiscSetGrabKeysState(%d) returned %s\n",
+             blurb(), !lock_p,
              (status == MiscExtGrabStateSuccess ? "MiscExtGrabStateSuccess" :
               status == MiscExtGrabStateLocked  ? "MiscExtGrabStateLocked"  :
               status == MiscExtGrabStateAlready ? "MiscExtGrabStateAlready" :
@@ -1050,7 +1053,7 @@ xfree_lock_mode_switch (saver_info *si, Bool lock_p)
   if (!XF86VidModeQueryExtension (si->dpy, &event, &error))
     return;
 
-  for (screen = 0; screen < si->nscreens; screen++)
+  for (screen = 0; screen < (si->xinerama_p ? 1 : si->nscreens); screen++)
     {
       XSync (si->dpy, False);
       old_handler = XSetErrorHandler (ignore_all_errors_ehandler);
@@ -1160,7 +1163,7 @@ passwd_animate_timer (XtPointer closure, XtIntervalId *id)
   else
     pw->timer = 0;
 
-  idle_timer ((XtPointer) si, id);
+  idle_timer ((XtPointer) si, 0);
 }