[gnome-power-manager] Use a larger DPMS idletime timeout to mitigate an XSync bug



commit 9776fcb8a52bd898b0d4a3c4834a08dcebe0bd0c
Author: Richard Hughes <richard hughsie com>
Date:   Fri Aug 14 11:17:45 2009 +0100

    Use a larger DPMS idletime timeout to mitigate an XSync bug

 src/gpm-idle.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)
---
diff --git a/src/gpm-idle.c b/src/gpm-idle.c
index 84a9365..a641621 100644
--- a/src/gpm-idle.c
+++ b/src/gpm-idle.c
@@ -53,6 +53,11 @@
 #define GPM_IDLE_TIMEOUT_IGNORE_DPMS_CHANGE	1.0f /* seconds */
 #define	GPM_IDLE_IDLETIME_ID			1
 
+/* XSync seems to be unreliable when setting small values of time.
+ * Ideally we want this to be 1ms (or smaller!) to reduce the chance of a race,
+ * but this fails to trigger on some systems. */
+#define GPM_IDLE_SMALLEST_RESET_VALUE		500 /* ms */
+
 struct GpmIdlePrivate
 {
 	GtkStatusIcon	*status_icon;
@@ -397,8 +402,8 @@ gpm_idle_idletime_reset_cb (EggIdletime *idletime, GpmIdle *idle)
 	if (idle->priv->mode == GPM_IDLE_MODE_BLANK &&
 	    elapsed < GPM_IDLE_TIMEOUT_IGNORE_DPMS_CHANGE) {
 		egg_debug ("ignoring reset, as we've just done a state change");
-		/* make sure we trigger a short 1ms timeout so we can get the expired signal */
-		egg_idletime_alarm_set (idle->priv->idletime, GPM_IDLE_IDLETIME_ID, 1);
+		/* make sure we trigger a short timeout so we can get the expired signal */
+		egg_idletime_alarm_set (idle->priv->idletime, GPM_IDLE_IDLETIME_ID, GPM_IDLE_SMALLEST_RESET_VALUE);
 		return;
 	}
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]