X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=driver%2Fxscreensaver.c;h=8a4fa2af7c36ca9ebeb5e1a8b270b0a9bd4d14cd;hp=2fdc4ac6d20b5a04ae6ff66f14ec8cedf854274a;hb=1d7308dd9032b39a92fda86e8c2db04218b45fbf;hpb=5f9c47ca98dd43d8f59b7c27d3fde6edfde4fe21 diff --git a/driver/xscreensaver.c b/driver/xscreensaver.c index 2fdc4ac6..8a4fa2af 100644 --- a/driver/xscreensaver.c +++ b/driver/xscreensaver.c @@ -1227,10 +1227,22 @@ main_loop (saver_info *si) for (i = 0; i < si->nscreens; i++) spawn_screenhack (&si->screens[i]); - /* If we are blanking only, we might as well power down the monitor - right now, regardless of what the DPMS settings are. */ - if (p->mode == BLANK_ONLY) - monitor_power_on (si, False); + /* If we are blanking only, optionally power down monitor right now. + To do this, we might need to temporarily re-enable DPMS first. + */ + if (p->mode == BLANK_ONLY && + p->dpms_enabled_p && + p->dpms_quickoff_p) + { + sync_server_dpms_settings (si->dpy, True, + p->dpms_standby / 1000, + p->dpms_suspend / 1000, + (p->dpms_off + ? (p->dpms_off / 1000) + : 0xFFFF), + False); + monitor_power_on (si, False); + } /* Don't start the cycle timer in demo mode. */ if (!si->demoing_p && p->cycle)