From: Martin Mares Date: Wed, 18 Aug 2010 23:43:28 +0000 (+0200) Subject: Merge branch 'master' of ssh://git.ucw.cz/home/mj/GIT/osdd X-Git-Tag: v1.1~5 X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=27e0118f90fbf4aa11c588cca83b412aac601f39;hp=1337d17e08a02478b2a54228bddf7a6c9f6354f2;p=osdd.git Merge branch 'master' of ssh://git.ucw.cz/home/mj/GIT/osdd --- diff --git a/osd-batt.c b/osd-batt.c index 56bf5b9..ace3a87 100644 --- a/osd-batt.c +++ b/osd-batt.c @@ -22,6 +22,9 @@ static int charge_time, discharge_time; static int ac_online; static unsigned int present_mask, charge_mask, discharge_mask; +static unsigned int last_charge_mask, last_discharge_mask; +static int last_ac_online = -1; + static char *parse_line(char *line) { char *t = strchr(line, '\n'); @@ -204,8 +207,16 @@ static void show(void) static void show_if_warn(void) { - if (discharge_mask && discharge_time < warn_threshold) + if (discharge_mask && discharge_time < warn_threshold || + last_ac_online >= 0 && ( + charge_mask != last_charge_mask || + discharge_mask != last_discharge_mask || + ac_online != last_ac_online)) show(); + + last_charge_mask = charge_mask; + last_discharge_mask = discharge_mask; + last_ac_online = ac_online; } static void NONRET