mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-22 19:44:21 +01:00
85f5c5f0f3
Signed-off-by: Robby Workman <rworkman@slackbuilds.org>
62 lines
2.1 KiB
Diff
62 lines
2.1 KiB
Diff
diff --git a/config.def.h b/config.def.h
|
|
index 89e5977..7f55466 100644
|
|
--- a/config.def.h
|
|
+++ b/config.def.h
|
|
@@ -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
|
|
@@ -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, ...) {
|
|
@@ -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)
|
|
@@ -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);
|
|
}
|
|
}
|
|
@@ -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);
|
|
|
|
@@ -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);
|