diff options
Diffstat (limited to 'desktop/slock/patches/0006-rework-setting-window-color.patch')
-rw-r--r-- | desktop/slock/patches/0006-rework-setting-window-color.patch | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/desktop/slock/patches/0006-rework-setting-window-color.patch b/desktop/slock/patches/0006-rework-setting-window-color.patch new file mode 100644 index 0000000000..f1c0903f8c --- /dev/null +++ b/desktop/slock/patches/0006-rework-setting-window-color.patch @@ -0,0 +1,54 @@ +From 754195f8d75586e23d1cc69cad00710802e0cb5d Mon Sep 17 00:00:00 2001 +From: Markus Teich <markus.teich@stusta.mhn.de> +Date: Fri, 8 May 2015 17:10:15 +0200 +Subject: [PATCH 6/9] rework setting window color + +--- + slock.c | 17 +++++++---------- + 1 file changed, 7 insertions(+), 10 deletions(-) + +diff --git a/slock.c b/slock.c +index 68e813f..d6053af 100644 +--- 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 : 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++) { +-- +2.6.4 + |