[Xfce4-commits] <xfce4-power-manager:master> Just process new charge state.

Ali Abdallah noreply at xfce.org
Tue Feb 15 10:04:04 CET 2011


Updating branch refs/heads/master
         to 0f99e9e7b82c2439438cec01ff0dbf0e45b21b83 (commit)
       from 629d610ba09c84a6ab1e4fc0652d0344bed44394 (commit)

commit 0f99e9e7b82c2439438cec01ff0dbf0e45b21b83
Author: Ali Abdallah <aliov at xfce.org>
Date:   Mon Feb 14 14:24:34 2011 +0100

    Just process new charge state.

 src/xfpm-power.c |   13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/xfpm-power.c b/src/xfpm-power.c
index 6c5d80f..b0bf5c9 100644
--- a/src/xfpm-power.c
+++ b/src/xfpm-power.c
@@ -79,6 +79,8 @@ struct XfpmPowerPrivate
     XfpmXfconf      *conf;
     GtkStatusIcon   *adapter_icon;
     
+    XfpmBatterState  overall_state;
+    
     gboolean	     inhibited;
     
     XfpmNotify	    *notify;
@@ -783,7 +785,7 @@ xfpm_power_process_critical_action (XfpmPower *power, XfpmShutdownRequest req)
 }
 
 static void
-xfpm_power_system_on_low_power (XfpmPower *power, XfpmBattery *battery)
+xfpm_power_system_on_critical_power (XfpmPower *power, XfpmBattery *battery)
 {
     XfpmShutdownRequest critical_action;
     
@@ -816,9 +818,15 @@ xfpm_power_battery_charge_changed_cb (XfpmBattery *battery, XfpmPower *power)
     
     XFPM_DEBUG_ENUM (current_charge, XFPM_TYPE_BATTERY_CHARGE, "Current system charge status");
     
+    if (current_charge == power->priv->overall_state)
+	return;
+    
+    power->priv->overall_state = current_state;
+    
     if ( current_charge == XFPM_BATTERY_CHARGE_CRITICAL && power->priv->on_battery)
     {
-	xfpm_power_system_on_low_power (power, battery);
+	xfpm_power_system_on_critical_power (power, battery);
+	
 	power->priv->on_low_battery = TRUE;
 	g_signal_emit (G_OBJECT (power), signals [LOW_BATTERY_CHANGED], 0, power->priv->on_low_battery);
 	return;
@@ -1220,6 +1228,7 @@ xfpm_power_init (XfpmPower *power)
     power->priv->auth_suspend    = TRUE;
     power->priv->dialog          = NULL;
     power->priv->adapter_icon    = NULL;
+    power->priv->overall_state   = XFPM_BATTERY_CHARGE_OK;
     
     power->priv->inhibit = xfpm_inhibit_new ();
     power->priv->notify  = xfpm_notify_new ();



More information about the Xfce4-commits mailing list