summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Lumby <johnlumby@hotmail.com>2018-06-26 17:14:34 -0700
committerKeith Packard <keithp@keithp.com>2018-06-26 17:14:34 -0700
commitf5aace7a27d6d61068dcae46c9756b669ab51d50 (patch)
tree130c25008f5c1513462ee85c5ecca0df4202133c
parentf33cb4264387ed14a586ba080885b4d21e4aa48b (diff)
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 <johnlumby@hotmail.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r--Xext/dpms.c16
1 files 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();