[dev] [PATCH] failcolor, updated for slock-1.2

From: Kylie McClain <somasissounds_AT_gmail.com>
Date: Sun, 18 Jan 2015 21:15:33 -0500

original patch by Michael Stummvoll <michael_AT_stummi.org>
---
 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.1
Received 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