X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=osd-batt.c;fp=osd-batt.c;h=ace3a87f79d6e3248f88f7a3d00c809bf6d7cbc2;hb=ed178bba7ac525fe06a15771b146b7fee2e9b3fd;hp=56bf5b916ed558164e3efd00548f14846552114a;hpb=f7e6a0d035cc852ffd74e1fdc0090732209ad178;p=osdd.git 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