From 78f9e2dedc923de295a17a7c9571c72dd73a38e5 Mon Sep 17 00:00:00 2001 From: David Phillips Date: Fri, 20 Nov 2015 14:11:56 +1300 Subject: Don't change governor unless required --- tray.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/tray.c b/tray.c index 058f741..0db6fb8 100644 --- a/tray.c +++ b/tray.c @@ -242,10 +242,23 @@ static void update_icon() **********************************************************************/ static gboolean update() { + static int last_bat_state = -1; + int now_bat_state = STATE_UNKNOWN; unsigned int i; - switch ( get_battery_state() ) + + update_tooltip_cache(); + update_icon(); + + now_bat_state = get_battery_state(); + if (now_bat_state == last_bat_state) + return true; + + last_bat_state = now_bat_state; + + switch ( now_bat_state ) { case STATE_DISCHARGING: + fprintf(stderr, "discharging\n"); if (DEFAULT_BAT_GOV) { for (i = 0; i < gc_number(); i++) @@ -255,6 +268,7 @@ static gboolean update() case STATE_CHARGING: case STATE_FULL: + fprintf(stderr, "ac power\n"); if (DEFAULT_AC_GOV) { for (i = 0; i < gc_number(); i++) @@ -263,9 +277,6 @@ static gboolean update() break; } - - update_tooltip_cache(); - update_icon(); return true; } -- cgit v1.1