--- config.def.h | 1 + slock.c | 10 +++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/config.def.h b/config.def.h index 89e5977..7f55466 100644 --- a/config.def.h +++ b/config.def.h _AT_@ -1,2 +1,3 @@ #define COLOR1 "black" #define COLOR2 "#005577" +#define COLOR3 "#550000" diff --git a/slock.c b/slock.c index face75e..8519ce2 100644 --- a/slock.c +++ b/slock.c _AT_@ -29,12 +29,13 @@ typedef struct { int screen; Window root, win; Pixmap pmap; - unsigned long colors[2]; + unsigned long colors[3]; } Lock; static Lock **locks; static int nscreens; static Bool running = True; +static Bool tried = False; static void die(const char *errstr, ...) { _AT_@ -135,6 +136,7 @@ readpw(Display *dpy, const char *pws) #ifdef HAVE_BSD_AUTH running = !auth_userokay(getlogin(), NULL, "auth-xlock", passwd); #else + tried=True; running = !!strcmp(crypt(passwd, pws), pws); #endif if(running) _AT_@ -162,7 +164,7 @@ readpw(Display *dpy, const char *pws) } } else if(llen != 0 && len == 0) { for(screen = 0; screen < nscreens; screen++) { - XSetWindowBackground(dpy, locks[screen]->win, locks[screen]->colors[0]); + XSetWindowBackground(dpy, locks[screen]->win, locks[screen]->colors[tried ? 2 : 0]); XClearWindow(dpy, locks[screen]->win); } } _AT_@ -179,7 +181,7 @@ unlockscreen(Display *dpy, Lock *lock) { return; XUngrabPointer(dpy, CurrentTime); - XFreeColors(dpy, DefaultColormap(dpy, lock->screen), lock->colors, 2, 0); + XFreeColors(dpy, DefaultColormap(dpy, lock->screen), lock->colors, 3, 0); XFreePixmap(dpy, lock->pmap); XDestroyWindow(dpy, lock->win); _AT_@ -212,6 +214,8 @@ lockscreen(Display *dpy, int screen) { lock->win = XCreateWindow(dpy, lock->root, 0, 0, DisplayWidth(dpy, lock->screen), DisplayHeight(dpy, lock->screen), 0, DefaultDepth(dpy, lock->screen), CopyFromParent, DefaultVisual(dpy, lock->screen), CWOverrideRedirect | CWBackPixel, &wa); + XAllocNamedColor(dpy, DefaultColormap(dpy, lock->screen), COLOR3, &color, &dummy); + lock->colors[2] = color.pixel; XAllocNamedColor(dpy, DefaultColormap(dpy, lock->screen), COLOR2, &color, &dummy); lock->colors[1] = color.pixel; XAllocNamedColor(dpy, DefaultColormap(dpy, lock->screen), COLOR1, &color, &dummy); -- 2.2.1Received on Mon Jan 19 2015 - 03:15:33 CET
This archive was generated by hypermail 2.3.0 : Mon Jan 19 2015 - 03:24:08 CET