r4348 - trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-battery/src

erin_yueh at sita.openmoko.org erin_yueh at sita.openmoko.org
Fri Apr 11 19:16:20 CEST 2008


Author: erin_yueh
Date: 2008-04-11 19:16:15 +0200 (Fri, 11 Apr 2008)
New Revision: 4348

Modified:
   trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-battery/src/openmoko-panel-battery.c
Log:
openmoko-panel-battery: update battery icon (Erin Yueh)


Modified: trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-battery/src/openmoko-panel-battery.c
===================================================================
--- trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-battery/src/openmoko-panel-battery.c	2008-04-11 14:55:21 UTC (rev 4347)
+++ trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-battery/src/openmoko-panel-battery.c	2008-04-11 17:16:15 UTC (rev 4348)
@@ -33,6 +33,7 @@
 
 typedef struct {
     MokoPanelApplet* mokoapplet;
+    const char *last_icon;
     guint timeout_id;
 } BatteryApplet;
 
@@ -110,23 +111,14 @@
 {
     g_debug( "battery_applet: timeout" );
     char* icon;
-    static int last_status = -123; /* the status last time we checked */
 
     apm_info info;
     // How about g_new0 here?
     memset (&info, 0, sizeof (apm_info));
     apm_read (&info);
 
-    /* don't do any update if status is the same as the last time */
-    if (last_status == info.battery_status)
-    {
-        return TRUE;
-    }
-
     //FIXME Can we actually find out, when the battery is full?
 
-    last_status = info.battery_status;
-
     if ( info.battery_status == BATTERY_STATUS_ABSENT ||
          info.battery_status == BATTERY_STATUS_CHARGING )
     {
@@ -148,6 +140,11 @@
             icon = PKGDATADIR "/Battery_05.png";
     }
 
+    if (icon == applet->last_icon)
+	return TRUE;
+
+    applet->last_icon = icon;
+
     moko_panel_applet_set_icon( applet->mokoapplet, icon );
 
     return TRUE;
@@ -163,6 +160,8 @@
     t = time( NULL );
     local_time = localtime(&t);
 
+    applet->last_icon = NULL; 
+
     timeout( applet );
     battery_applet_init_dbus( applet );
     applet->timeout_id = g_timeout_add_seconds( 60, (GSourceFunc) timeout, applet);





More information about the commitlog mailing list