diff --git a/src/xfpm-dpms.c b/src/xfpm-dpms.c index 2cb3c5e..5bfe839 100644 --- a/src/xfpm-dpms.c +++ b/src/xfpm-dpms.c @@ -242,6 +242,12 @@ xfpm_dpms_force_off (gpointer data) goto out; } + if ( !state ) + { + TRACE ("DPMS is disabled"); + goto out; + } + if ( power_level != DPMSModeOff ) { if ( xfpm_is_multihead_connected () ) @@ -279,6 +285,12 @@ xfpm_dpms_force_on (gpointer data) goto out; } + if ( !state ) + { + TRACE ("DPMS is disabled"); + goto out; + } + if ( power_level != DPMSModeOn ) { TRACE ("Forcing DPMSModeOn"); @@ -312,13 +324,16 @@ xfpm_dpms_lid_event_cb (XfpmButtonHal *bt, gboolean pressed, XfpmDpms *dpms) dpms->priv->switch_on_timeout_id = 0; } - if ( pressed ) - { - g_timeout_add (100, (GSourceFunc) xfpm_dpms_force_off, dpms); - } - else + if ( dpms->priv->dpms_capable ) { - g_timeout_add (100, (GSourceFunc) xfpm_dpms_force_on, dpms); + if ( pressed ) + { + g_timeout_add (100, (GSourceFunc) xfpm_dpms_force_off, dpms); + } + else + { + g_timeout_add (100, (GSourceFunc) xfpm_dpms_force_on, dpms); + } } }