diff options
Diffstat (limited to 'pkgs/desktops/cinnamon/dpms.patch')
-rw-r--r-- | pkgs/desktops/cinnamon/dpms.patch | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/pkgs/desktops/cinnamon/dpms.patch b/pkgs/desktops/cinnamon/dpms.patch new file mode 100644 index 000000000000..a73f33dc6182 --- /dev/null +++ b/pkgs/desktops/cinnamon/dpms.patch @@ -0,0 +1,30 @@ + +-- 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); |