Index: panel-plugin/battery-monitor.c =================================================================== --- panel-plugin/battery-monitor.c (revision 6726) +++ panel-plugin/battery-monitor.c (working copy) @@ -433,6 +433,10 @@ if (libhal_device_property_exists (monitor->context, udi, "battery.rechargeable.is_discharging", &error)) info->is_discharging = libhal_device_get_property_bool (monitor->context, udi, "battery.rechargeable.is_discharging", &error); + /* whether the battery is discharging */ + if (libhal_device_property_exists (monitor->context, udi, "battery.rechargeable.is_charging", &error)) + info->is_charging = libhal_device_get_property_bool (monitor->context, udi, "battery.rechargeable.is_charging", &error); + /* whether the battery is present */ if (libhal_device_property_exists (monitor->context, udi, "battery.present", &error)) info->is_present = libhal_device_get_property_bool (monitor->context, udi, "battery.present", &error); Index: panel-plugin/battery-monitor.h =================================================================== --- panel-plugin/battery-monitor.h (revision 6726) +++ panel-plugin/battery-monitor.h (working copy) @@ -57,6 +57,7 @@ /* status */ guint is_discharging : 1; + guint is_charging : 1; guint is_present : 1; gint percentage; gint remaining_time; Index: panel-plugin/battery-plugin.c =================================================================== --- panel-plugin/battery-plugin.c (revision 6726) +++ panel-plugin/battery-plugin.c (working copy) @@ -255,7 +255,7 @@ g_string_append_printf (string, "%d%% %s", info->percentage, _("remaining")); } } - else /* charging */ + else if (info->is_charging) { /* Charging (50% */ g_string_append_printf (string, "%s (%d%%", _("Charging"), info->percentage); @@ -272,7 +272,10 @@ g_string_append_printf (string, " %s)", _("completed")); } } - + else + { + g_string_append_printf(string, "%s", _("Idle")); + } /* cleanup */ g_free (time_string); }