summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mi/mieq.c13
-rw-r--r--os/WaitFor.c5
2 files changed, 14 insertions, 4 deletions
diff --git a/mi/mieq.c b/mi/mieq.c
index 80915fd73..507cdd337 100644
--- a/mi/mieq.c
+++ b/mi/mieq.c
@@ -52,6 +52,12 @@ in this Software without prior written authorization from The Open Group.
# include "extinit.h"
# include "exglobals.h"
+#ifdef DPMSExtension
+# include "dpmsproc.h"
+# define DPMS_SERVER
+# include <X11/extensions/dpms.h>
+#endif
+
#define QUEUE_SIZE 256
typedef struct _Event {
@@ -183,6 +189,13 @@ mieqProcessInputEvents()
while (miEventQueue.head != miEventQueue.tail) {
if (screenIsSaved == SCREEN_SAVER_ON)
SaveScreens (SCREEN_SAVER_OFF, ScreenSaverReset);
+#ifdef DPMSExtension
+ else if (DPMSPowerLevel != DPMSModeOn)
+ SetScreenSaverTimer();
+
+ if (DPMSPowerLevel != DPMSModeOn)
+ DPMSSet(DPMSModeOn);
+#endif
e = &miEventQueue.events[miEventQueue.head];
/* Assumption - screen switching can only occur on motion events. */
diff --git a/os/WaitFor.c b/os/WaitFor.c
index ba227a3b6..d39964f30 100644
--- a/os/WaitFor.c
+++ b/os/WaitFor.c
@@ -337,10 +337,7 @@ WaitForSomething(int *pClientsReady)
if (XFD_ANYSET(&tmp_set))
QueueWorkProc(EstablishNewConnections, NULL,
(pointer)&LastSelectMask);
-#ifdef DPMSExtension
- if (XFD_ANYSET (&devicesReadable) && (DPMSPowerLevel != DPMSModeOn))
- DPMSSet(DPMSModeOn);
-#endif
+
if (XFD_ANYSET (&devicesReadable) || XFD_ANYSET (&clientsReadable))
break;
#ifdef WIN32