From 394ed02f8761c7599fa08628a4d28d34337028f6 Mon Sep 17 00:00:00 2001 From: John Lumby Date: Tue, 26 Jun 2018 17:14:34 -0700 Subject: [PATCH] Change the DPMS initialization to be conditional on not set from config Any DPMS timeout values set in ServerFlags section of the xorg.conf are being overwritten by DPMS extension initialization. Therefore change the DPMS initialization of timeout values to be conditional on not set from config. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106963 Signed-off-by: John Lumby Reviewed-by: Emil Velikov Signed-off-by: Keith Packard (cherry picked from commit f5aace7a27d6d61068dcae46c9756b669ab51d50) --- Xext/dpms.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/Xext/dpms.c b/Xext/dpms.c index efa715428..e43a37974 100644 --- a/Xext/dpms.c +++ b/Xext/dpms.c @@ -45,9 +45,9 @@ Equipment Corporation. CARD16 DPMSPowerLevel = 0; Bool DPMSDisabledSwitch = FALSE; -CARD32 DPMSStandbyTime; -CARD32 DPMSSuspendTime; -CARD32 DPMSOffTime; +CARD32 DPMSStandbyTime = -1; +CARD32 DPMSSuspendTime = -1; +CARD32 DPMSOffTime = -1; Bool DPMSEnabled; Bool @@ -432,7 +432,15 @@ DPMSCloseDownExtension(ExtensionEntry *e) void DPMSExtensionInit(void) { - DPMSStandbyTime = DPMSSuspendTime = DPMSOffTime = ScreenSaverTime; +#define CONDITIONALLY_SET_DPMS_TIMEOUT(_timeout_value_) \ + if (_timeout_value_ == -1) { /* not yet set from config */ \ + _timeout_value_ = ScreenSaverTime; \ + } + + CONDITIONALLY_SET_DPMS_TIMEOUT(DPMSStandbyTime) + CONDITIONALLY_SET_DPMS_TIMEOUT(DPMSSuspendTime) + CONDITIONALLY_SET_DPMS_TIMEOUT(DPMSOffTime) + DPMSPowerLevel = DPMSModeOn; DPMSEnabled = DPMSSupported();