rework setting window color
This commit is contained in:
parent
10d4e479c5
commit
754195f8d7
17
slock.c
17
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 : INIT);
|
||||
if (oldc != color) {
|
||||
for (screen = 0; screen < nscreens; screen++) {
|
||||
XSetWindowBackground(dpy, locks[screen]->win, locks[screen]->colors[INPUT]);
|
||||
XClearWindow(dpy, locks[screen]->win);
|
||||
}
|
||||
} else if (llen != 0 && len == 0) {
|
||||
for (screen = 0; screen < nscreens; screen++) {
|
||||
XSetWindowBackground(dpy, locks[screen]->win, locks[screen]->colors[failure || failonclear ? FAILED : INIT]);
|
||||
XSetWindowBackground(dpy, locks[screen]->win, locks[screen]->colors[color]);
|
||||
XClearWindow(dpy, locks[screen]->win);
|
||||
}
|
||||
oldc = color;
|
||||
}
|
||||
llen = len;
|
||||
} else if (rr && ev.type == rrevbase + RRScreenChangeNotify) {
|
||||
XRRScreenChangeNotifyEvent *rre = (XRRScreenChangeNotifyEvent*)&ev;
|
||||
for (screen = 0; screen < nscreens; screen++) {
|
||||
|
Loading…
Reference in New Issue
Block a user