X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=driver%2Flock.c;h=2f3108c19cf147b632ef51afe8e55956bf39ba69;hb=7b34ef992563d7bcbb64cc5597dc45fa24470b05;hp=159c6a0f2517d548e7a1036d938466b303b89344;hpb=de460e831dc8578acfa8b72251ab9346c99c1f96;p=xscreensaver diff --git a/driver/lock.c b/driver/lock.c index 159c6a0f..2f3108c1 100644 --- a/driver/lock.c +++ b/driver/lock.c @@ -1912,6 +1912,12 @@ gui_auth_conv(int num_msg, const char *info_msg, *prompt; struct auth_response *responses; + if (si->unlock_state == ul_cancel || + si->unlock_state == ul_time) + /* If we've already cancelled or timed out in this PAM conversation, + don't prompt again even if PAM asks us to! */ + return -1; + if (!(responses = calloc(num_msg, sizeof(struct auth_response)))) goto fail; @@ -2049,7 +2055,7 @@ auth_finished_cb (saver_info *si) event.xany.type == Expose) draw_passwd_window (si); else if (event.xany.type == ButtonPress || - event.xany.type == ButtonRelease) + event.xany.type == KeyPress) break; XSync (si->dpy, False); }