X-Git-Url: https://git.armaanb.net/?a=blobdiff_plain;f=slock.c;h=04665ffc8fd196828c07b5657c7cf6908599e94d;hb=d95b61cf2e94487c623cce9bfb9aa0ed1de4f7f0;hp=700acfb4f5c969adc503fbabfb2b9ffd58932f0b;hpb=0ff0d9f7a7156a0e0b41d5b208ae5625e3a15dab;p=slock.git diff --git a/slock.c b/slock.c index 700acfb..04665ff 100644 --- a/slock.c +++ b/slock.c @@ -156,6 +156,22 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens, IsPFKey(ksym) || IsPrivateKeypadKey(ksym)) continue; + if (ev.xkey.state & ControlMask) { + switch (ksym) { + case XK_u: + ksym = XK_Escape; + break; + case XK_m: + ksym = XK_Return; + break; + case XK_j: + ksym = XK_Return; + break; + case XK_h: + ksym = XK_BackSpace; + break; + } + } switch (ksym) { case XK_Return: passwd[len] = '\0'; @@ -177,7 +193,7 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens, break; case XK_BackSpace: if (len) - passwd[len--] = '\0'; + passwd[--len] = '\0'; break; default: if (num && !iscntrl((int)buf[0]) && @@ -212,8 +228,10 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens, break; } } - } else for (screen = 0; screen < nscreens; screen++) - XRaiseWindow(dpy, locks[screen]->win); + } else { + for (screen = 0; screen < nscreens; screen++) + XRaiseWindow(dpy, locks[screen]->win); + } } }