--- slock.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/slock.c b/slock.c index c9cdee2..c3c3ebc 100644 --- a/slock.c +++ b/slock.c _AT_@ -125,6 +125,7 @@ readpw(Display *dpy, const char *pws) KeySym ksym; XEvent ev; static int oldc = INIT; + Bool control_pressed; len = 0; running = True; _AT_@ -137,6 +138,7 @@ readpw(Display *dpy, const char *pws) if (ev.type == KeyPress) { buf[0] = 0; num = XLookupString(&ev.xkey, buf, sizeof(buf), &ksym, 0); + control_pressed = !!(ev.xkey.state & ControlMask); if (IsKeypadKey(ksym)) { if (ksym == XK_KP_Enter) ksym = XK_Return; _AT_@ -171,7 +173,9 @@ readpw(Display *dpy, const char *pws) --len; break; default: - if (num && !iscntrl((int)buf[0]) && (len + num < sizeof(passwd))) { + if (control_pressed && ksym == XK_u) { + len = 0; + } else if (num && !iscntrl((int)buf[0]) && (len + num < sizeof(passwd))) { memcpy(passwd + len, buf, num); len += num; }Received on Sun Jun 05 2016 - 23:22:08 CEST
This archive was generated by hypermail 2.3.0 : Sun Jun 05 2016 - 23:24:11 CEST