X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=driver%2Flock.c;h=2aa61f637daa8f9178ee7b31521651f7c9c7d57e;hp=6a73ee0c70853de3b9712f08073e78ac67a1f3e0;hb=ffd8c0873576a9e3065696a624dce6b766b77062;hpb=96bdd7cf6ea60c418a76921acaf0e34d6f5be930 diff --git a/driver/lock.c b/driver/lock.c index 6a73ee0c..2aa61f63 100644 --- a/driver/lock.c +++ b/driver/lock.c @@ -1,5 +1,5 @@ /* lock.c --- handling the password dialog for locking-mode. - * xscreensaver, Copyright (c) 1993-2002 Jamie Zawinski + * xscreensaver, Copyright (c) 1993-2004 Jamie Zawinski * * 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); }