diff --git a/src/battery/battery.c b/src/battery/battery.c index f7f3353..c7d022a 100644 --- a/src/battery/battery.c +++ b/src/battery/battery.c @@ -81,8 +81,19 @@ void update_battery_tick(void *arg) tint_exec(ac_disconnected_cmd); } + if (battery_state.percentage < battery_low_status && battery_state.state == BATTERY_DISCHARGING && + !battery_low_cmd_sent) { + tint_exec(battery_low_cmd); + battery_low_cmd_sent = TRUE; + } + if (battery_state.percentage > battery_low_status && battery_state.state == BATTERY_CHARGING && + battery_low_cmd_sent) { + battery_low_cmd_sent = FALSE; + } + int i; for (i = 0; i < num_panels; i++) { + // Show/hide if needed if (!battery_found) { if (panels[i].battery.area.on_screen) { hide(&panels[i].battery.area); @@ -101,26 +112,15 @@ void update_battery_tick(void *arg) } } } + // Redraw if needed if (panels[i].battery.area.on_screen) { - panels[i].battery.area.resize_needed = 1; - panel_refresh = TRUE; + if (old_found != battery_found || old_percentage != battery_state.percentage || + old_hours != battery_state.time.hours || old_minutes != battery_state.time.minutes) { + panels[i].battery.area.resize_needed = TRUE; + panel_refresh = TRUE; + } } } - - if (old_found == battery_found && old_percentage == battery_state.percentage && - old_hours == battery_state.time.hours && old_minutes == battery_state.time.minutes) { - return; - } - - if (battery_state.percentage < battery_low_status && battery_state.state == BATTERY_DISCHARGING && - !battery_low_cmd_sent) { - tint_exec(battery_low_cmd); - battery_low_cmd_sent = 1; - } - if (battery_state.percentage > battery_low_status && battery_state.state == BATTERY_CHARGING && - battery_low_cmd_sent) { - battery_low_cmd_sent = 0; - } } void default_battery()