summaryrefslogtreecommitdiff
path: root/community/cinnamon-settings-daemon/dpms.patch
blob: 0e48ee85dbaeb29edc3158d34cde8588637615c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
--- a/plugins/power/csd-power-manager.c
+++ b/plugins/power/csd-power-manager.c
@@ -33,6 +33,8 @@
 #include <libnotify/notify.h>
 #include <canberra-gtk.h>
 
+#include <X11/extensions/dpms.h>
+
 #define GNOME_DESKTOP_USE_UNSTABLE_API
 #include <libcinnamon-desktop/gnome-rr.h>
 
@@ -3967,6 +3790,17 @@ csd_power_manager_start (CsdPowerManager
         /* set the initial dim time that can adapt for the user */
         refresh_idle_dim_settings (manager);
 
+        /* Make sure that Xorg's DPMS extension never gets in our way. The defaults seem to have changed in Xorg 1.14
+         * being "0" by default to being "600" by default 
+         * https://bugzilla.gnome.org/show_bug.cgi?id=709114
+         */
+        gdk_error_trap_push ();
+        int dummy;
+        if (DPMSQueryExtension(GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), &dummy, &dummy)) {
+            DPMSSetTimeouts (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), 0, 0, 0);
+        }
+        gdk_error_trap_pop_ignored ();
+
         manager->priv->xscreensaver_watchdog_timer_id = g_timeout_add_seconds (XSCREENSAVER_WATCHDOG_TIMEOUT,
                                                                                disable_builtin_screensaver,
                                                                                NULL);