rework setting window color - slock - simple X display locker utility | |
git clone git://git.suckless.org/slock | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 754195f8d75586e23d1cc69cad00710802e0cb5d | |
parent 10d4e479c5f6d91bf86e15be3a12c6b09c9808be | |
Author: Markus Teich <[email protected]> | |
Date: Fri, 8 May 2015 17:10:15 +0200 | |
rework setting window color | |
Diffstat: | |
M slock.c | 17 +++++++---------- | |
1 file changed, 7 insertions(+), 10 deletions(-) | |
--- | |
diff --git a/slock.c b/slock.c | |
@@ -119,11 +119,12 @@ readpw(Display *dpy, const char *pws) | |
{ | |
char buf[32], passwd[256]; | |
int num, screen; | |
- unsigned int len, llen; | |
+ unsigned int len, color; | |
KeySym ksym; | |
XEvent ev; | |
+ static int oldc = INIT; | |
- len = llen = 0; | |
+ len = 0; | |
running = True; | |
/* As "slock" stands for "Simple X display locker", the DPMS settings | |
@@ -174,18 +175,14 @@ readpw(Display *dpy, const char *pws) | |
} | |
break; | |
} | |
- if (llen == 0 && len != 0) { | |
+ color = len ? INPUT : (failure || failonclear ? FAILED… | |
+ if (oldc != color) { | |
for (screen = 0; screen < nscreens; screen++) { | |
- XSetWindowBackground(dpy, locks[screen… | |
- XClearWindow(dpy, locks[screen]->win); | |
- } | |
- } else if (llen != 0 && len == 0) { | |
- for (screen = 0; screen < nscreens; screen++) { | |
- XSetWindowBackground(dpy, locks[screen… | |
+ XSetWindowBackground(dpy, locks[screen… | |
XClearWindow(dpy, locks[screen]->win); | |
} | |
+ oldc = color; | |
} | |
- llen = len; | |
} else if (rr && ev.type == rrevbase + RRScreenChangeNotify) { | |
XRRScreenChangeNotifyEvent *rre = (XRRScreenChangeNoti… | |
for (screen = 0; screen < nscreens; screen++) { |