Battery: Only redraw when needed, not after each tick
o9000 mrovi9000@gmail.com
1 files changed,
17 insertions(+),
17 deletions(-)
jump to
M
src/battery/battery.c
→
src/battery/battery.c
@@ -81,8 +81,19 @@ else
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,25 +112,14 @@ panel_refresh = TRUE;
} } } + // 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; } }