summaryrefslogtreecommitdiffstats
path: root/desktop/slock/patches/0006-rework-setting-window-color.patch
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/slock/patches/0006-rework-setting-window-color.patch')
-rw-r--r--desktop/slock/patches/0006-rework-setting-window-color.patch54
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
+