X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=driver%2Flock.c;h=b508856034be167b6f45cbf4bd6cd410d0d61971;hb=14627f4038ada5d11456f3770090f3c39740d70f;hp=bd44a1afc3eb5f3eaf7ca2513b1e8a706bd3b8c8;hpb=93f25dc6827112d98b8b855ea85c8f5eb8123086;p=xscreensaver diff --git a/driver/lock.c b/driver/lock.c index bd44a1af..b5088560 100644 --- a/driver/lock.c +++ b/driver/lock.c @@ -985,6 +985,8 @@ passwd_animate_timer (XtPointer closure, XtIntervalId *id) } +static XComposeStatus *compose_status; + static void handle_passwd_key (saver_info *si, XKeyEvent *event) { @@ -995,7 +997,7 @@ handle_passwd_key (saver_info *si, XKeyEvent *event) char s[2]; char *stars = 0; int i; - int size = XLookupString (event, s, 1, 0, 0); + int size = XLookupString (event, s, 1, 0, compose_status); if (size != 1) return; @@ -1207,12 +1209,17 @@ unlock_p (saver_info *si) make_passwd_window (si); if (cmap) XInstallColormap (si->dpy, cmap); + compose_status = calloc (1, sizeof (*compose_status)); + handle_typeahead (si); passwd_event_loop (si); status = (si->pw_data->state == pw_ok); destroy_passwd_window (si); + free (compose_status); + compose_status = 0; + cmap = si->default_screen->cmap; if (cmap) XInstallColormap (si->dpy, cmap);