X-Git-Url: https://git.armaanb.net/?a=blobdiff_plain;f=slock.c;h=04665ffc8fd196828c07b5657c7cf6908599e94d;hb=d95b61cf2e94487c623cce9bfb9aa0ed1de4f7f0;hp=61fe9ee2c5009d948ffa74fd7ba54cd4399856ba;hpb=7a604ec1fae1eda36f210a28a2cf466583a9cb87;p=slock.git diff --git a/slock.c b/slock.c index 61fe9ee..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]) && @@ -209,10 +225,13 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens, XResizeWindow(dpy, locks[screen]->win, rre->width, rre->height); XClearWindow(dpy, locks[screen]->win); + 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); + } } }