~ob/slock

754195f8d75586e23d1cc69cad00710802e0cb5d — Markus Teich 6 years ago 10d4e47
rework setting window color
1 files changed, 7 insertions(+), 10 deletions(-)

M slock.c
M slock.c => slock.c +7 -10
@@ 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++) {