[Goodies-commits] r6885 - in xfce4-power-manager/trunk: . settings src
Ali Abdallah
aliov at xfce.org
Wed Mar 11 13:33:35 CET 2009
Author: aliov
Date: 2009-03-11 12:33:35 +0000 (Wed, 11 Mar 2009)
New Revision: 6885
Modified:
xfce4-power-manager/trunk/ChangeLog
xfce4-power-manager/trunk/settings/xfpm-settings.glade
xfce4-power-manager/trunk/src/xfpm-dpms.c
Log:
Set dpms to standby or suspend depending on the user settings
Modified: xfce4-power-manager/trunk/ChangeLog
===================================================================
--- xfce4-power-manager/trunk/ChangeLog 2009-03-11 12:06:57 UTC (rev 6884)
+++ xfce4-power-manager/trunk/ChangeLog 2009-03-11 12:33:35 UTC (rev 6885)
@@ -1,4 +1,7 @@
+2009-03-11 13:33 Ali aliov at xfce.org
+ * : Set dpms to standby or suspend depending on the user settings
+
2009-03-11 13:06 Ali aliov at xfce.org
* : Fix infinite loop caused by g_signal_connect+added advanced settings in the dialog
Modified: xfce4-power-manager/trunk/settings/xfpm-settings.glade
===================================================================
--- xfce4-power-manager/trunk/settings/xfpm-settings.glade 2009-03-11 12:06:57 UTC (rev 6884)
+++ xfce4-power-manager/trunk/settings/xfpm-settings.glade 2009-03-11 12:33:35 UTC (rev 6885)
@@ -833,7 +833,7 @@
<property name="orientation">vertical</property>
<child>
<widget class="GtkRadioButton" id="sleep-dpms-mode">
- <property name="label" translatable="yes">Sleep</property>
+ <property name="label" translatable="yes">Standby</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
Modified: xfce4-power-manager/trunk/src/xfpm-dpms.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-dpms.c 2009-03-11 12:06:57 UTC (rev 6884)
+++ xfce4-power-manager/trunk/src/xfpm-dpms.c 2009-03-11 12:33:35 UTC (rev 6885)
@@ -76,6 +76,7 @@
guint16 off_on_ac;
gboolean on_battery;
+ guint8 sleep_dpms_mode; /*0=sleep 1=suspend*/
};
G_DEFINE_TYPE(XfpmDpms, xfpm_dpms, G_TYPE_OBJECT)
@@ -111,39 +112,58 @@
}
static void
-xfpm_dpms_timeouts_on_battery (XfpmDpms *dpms)
+xfpm_dpms_set_timeouts (XfpmDpms *dpms, guint16 standby, guint16 suspend, guint off)
{
CARD16 x_standby = 0 ,x_suspend = 0,x_off = 0;
DPMSGetTimeouts (GDK_DISPLAY(), &x_standby, &x_suspend, &x_off);
- if ( x_suspend != dpms->priv->sleep_on_battery ||
- x_off != dpms->priv->off_on_battery )
+ if ( standby != x_standby || suspend != x_suspend || off != x_off )
{
- DPMSSetTimeouts (GDK_DISPLAY(), dpms->priv->sleep_on_battery ,
- dpms->priv->sleep_on_battery ,
- dpms->priv->off_on_battery );
- TRACE("sleep=%d turn_off=%d\n", dpms->priv->sleep_on_battery, dpms->priv->off_on_battery);
+ TRACE ("Settings dpms: standby=%d suspend=%d off=%d\n", standby, suspend, off);
+ DPMSSetTimeouts (GDK_DISPLAY(), standby,
+ suspend,
+ off );
}
+
}
static void
+xfpm_dpms_timeouts_on_battery (XfpmDpms *dpms)
+{
+ if ( dpms->priv->sleep_dpms_mode == 0 )
+ {
+ xfpm_dpms_set_timeouts (dpms,
+ dpms->priv->sleep_on_battery ,
+ 0,
+ dpms->priv->off_on_battery );
+ }
+ else
+ {
+ xfpm_dpms_set_timeouts (dpms,
+ 0,
+ dpms->priv->sleep_on_battery ,
+ dpms->priv->off_on_battery );
+ }
+}
+
+static void
xfpm_dpms_timeouts_on_adapter (XfpmDpms *dpms)
{
- CARD16 x_standby = 0 ,x_suspend = 0,x_off = 0;
-
- DPMSGetTimeouts (GDK_DISPLAY(), &x_standby, &x_suspend, &x_off);
-
- if ( x_suspend != dpms->priv->sleep_on_ac ||
- x_off != dpms->priv->off_on_ac )
+ if ( dpms->priv->sleep_dpms_mode == 0 )
{
- DPMSSetTimeouts (GDK_DISPLAY(), dpms->priv->sleep_on_ac ,
- dpms->priv->sleep_on_ac ,
- dpms->priv->off_on_ac );
-
- TRACE("sleep=%d turn_off=%d\n", dpms->priv->sleep_on_ac, dpms->priv->off_on_ac );
+ xfpm_dpms_set_timeouts (dpms,
+ dpms->priv->sleep_on_ac ,
+ 0,
+ dpms->priv->off_on_ac );
}
-
+ else
+ {
+ xfpm_dpms_set_timeouts (dpms,
+ 0,
+ dpms->priv->sleep_on_ac ,
+ dpms->priv->off_on_ac );
+ }
}
static gboolean
@@ -172,7 +192,7 @@
}
static void
-xfpm_dpms_set_timeouts (XfpmDpms *dpms)
+xfpm_dpms_check (XfpmDpms *dpms)
{
xfpm_dpms_enable_disable (dpms);
@@ -221,9 +241,27 @@
dpms->priv->off_on_battery = MIN (3600, val * 60);
set = TRUE;
}
+ else if ( xfpm_strequal (property, DPMS_SLEEP_MODE) )
+ {
+ const gchar *str = g_value_get_string (value);
+ if ( xfpm_strequal (str, "sleep" ) )
+ {
+ dpms->priv->sleep_dpms_mode = 0;
+ }
+ else if ( xfpm_strequal (str, "suspend") )
+ {
+ dpms->priv->sleep_dpms_mode = 1;
+ }
+ else
+ {
+ g_critical("Invalid value %s for property %s\n", str, DPMS_SLEEP_MODE);
+ dpms->priv->sleep_dpms_mode = 0;
+ }
+ set = TRUE;
+ }
if ( set )
- xfpm_dpms_set_timeouts (dpms);
+ xfpm_dpms_check (dpms);
}
static void
@@ -243,6 +281,23 @@
dpms->priv->off_on_ac =
MIN(xfconf_channel_get_uint( dpms->priv->channel, ON_AC_DPMS_OFF, 15) * 60, 3600);
+
+ gchar *str = xfconf_channel_get_string (dpms->priv->channel, DPMS_SLEEP_MODE, "sleep");
+
+ if ( xfpm_strequal (str, "sleep" ) )
+ {
+ dpms->priv->sleep_dpms_mode = 0;
+ }
+ else if ( xfpm_strequal (str, "suspend") )
+ {
+ dpms->priv->sleep_dpms_mode = 1;
+ }
+ else
+ {
+ g_critical("Invalid value %s for property %s\n", str, DPMS_SLEEP_MODE);
+ dpms->priv->sleep_dpms_mode = 0;
+ }
+ g_free (str);
}
XfpmDpms *
@@ -276,7 +331,7 @@
dpms->priv->on_battery = on_battery;
- xfpm_dpms_set_timeouts (dpms);
+ xfpm_dpms_check (dpms);
}
gboolean xfpm_dpms_capable (XfpmDpms *dpms)
More information about the Goodies-commits
mailing list