commit 2445d75b5db8a16f1d98c91bf0fd767a4cd6bbe7
parent 4c905a9c07d1c63e9f9df7187e9e4c5806007920
Author: bakkeby <bakkeby@gmail.com>
Date: Sun, 26 Jan 2020 16:16:38 +0100
Fix bug in DPMS patch + moved patches.h to patches.def.h to match that of config
Diffstat:
6 files changed, 16 insertions(+), 24 deletions(-)
diff --git a/.gitignore b/.gitignore
@@ -1,3 +1,4 @@
*.o
dwm
config.h
+patches.h
diff --git a/Makefile b/Makefile
@@ -18,12 +18,16 @@ options:
@echo CC $<
@${CC} -c ${CFLAGS} $<
-${OBJ}: config.h config.mk arg.h util.h
+${OBJ}: config.h config.mk arg.h util.h patches.h
config.h:
@echo creating $@ from config.def.h
@cp config.def.h $@
+patches.h:
+ @echo creating $@ from patches.def.h
+ @cp patches.def.h $@
+
slock: ${OBJ}
@echo CC -o $@
@${CC} -o $@ ${OBJ} ${LDFLAGS}
diff --git a/patch/dpms.c b/patch/dpms.c
@@ -1,9 +0,0 @@
-#include <X11/extensions/dpms.h>
-
-static void
-monitorreset(Display* dpy, CARD16 standby, CARD16 suspend, CARD16 off)
-{
- DPMSSetTimeouts(dpy, standby, suspend, off);
- DPMSForceLevel(dpy, DPMSModeOn);
- XFlush(dpy);
-}
-\ No newline at end of file
diff --git a/patch/include.c b/patch/include.c
@@ -1,8 +1,4 @@
/* Patches */
-#if DPMS_PATCH
-#include "dpms.c"
-#endif
-
#if MESSAGE_PATCH
#include "message.c"
#endif
diff --git a/patches.h b/patches.def.h
diff --git a/slock.c b/slock.c
@@ -29,6 +29,9 @@
#if QUICKCANCEL_PATCH
#include <time.h>
#endif // QUICKCANCEL_PATCH
+#if DPMS_PATCH
+#include <X11/extensions/dpms.h>
+#endif // DPMS_PATCH
#include "arg.h"
#include "util.h"
@@ -542,7 +545,7 @@ main(int argc, char **argv) {
return 1;
#if DPMS_PATCH
- /* DPMS-magic to disable the monitor */
+ /* DPMS magic to disable the monitor */
if (!DPMSCapable(dpy))
die("slock: DPMSCapable failed\n");
if (!DPMSEnable(dpy))
@@ -550,11 +553,11 @@ main(int argc, char **argv) {
if (!DPMSGetTimeouts(dpy, &standby, &suspend, &off))
die("slock: DPMSGetTimeouts failed\n");
if (!standby || !suspend || !off)
- /* set values if there arent some */
- standby = suspend = off = 300;
+ die("slock: at least one DPMS variable is zero\n");
+ if (!DPMSSetTimeouts(dpy, monitortime, monitortime, monitortime))
+ die("slock: DPMSSetTimeouts failed\n");
- DPMSSetTimeouts(dpy, monitortime, monitortime, monitortime);
- XFlush(dpy);
+ XSync(dpy, 0);
#endif // DPMS_PATCH
/* run post-lock command */
@@ -563,9 +566,6 @@ main(int argc, char **argv) {
case -1:
die("slock: fork failed: %s\n", strerror(errno));
case 0:
- #if DPMS_PATCH
- monitorreset(dpy, standby, suspend, off);
- #endif // DPMS_PATCH
if (close(ConnectionNumber(dpy)) < 0)
die("slock: close: %s\n", strerror(errno));
execvp(argv[0], argv);
@@ -578,7 +578,8 @@ main(int argc, char **argv) {
readpw(dpy, &rr, locks, nscreens, hash);
#if DPMS_PATCH
/* reset DPMS values to inital ones */
- monitorreset(dpy, standby, suspend, off);
+ DPMSSetTimeouts(dpy, standby, suspend, off);
+ XSync(dpy, 0);
#endif // DPMS_PATCH
return 0;