diff options
author | Lukas Fleischer <lfleischer@calcurse.org> | 2016-06-27 08:50:46 +0200 |
---|---|---|
committer | Lukas Fleischer <lfleischer@calcurse.org> | 2016-06-27 08:57:42 +0200 |
commit | 203ac0aa61cff1cd386bc0e1a74c234f8bf2681c (patch) | |
tree | 236bba4178f256f8d4910b4cfbdf1b57122d7602 /src/day.c | |
parent | b6f95b380f9662f9294b291c9a061750125bb7eb (diff) | |
download | calcurse-203ac0aa61cff1cd386bc0e1a74c234f8bf2681c.zip |
Highlight days with non-recurrent items
Use a different color for days with non-recurrent items in the calendar
panel. This makes it possible to easily spot days that actually contain
appointments.
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
Diffstat (limited to 'src/day.c')
-rw-r--r-- | src/day.c | 27 |
1 files changed, 15 insertions, 12 deletions
@@ -507,13 +507,26 @@ void day_popup_item(struct day_item *day) } /* - * Need to know if there is an item for the current selected day inside - * calendar. This is used to put the correct colors inside calendar panel. + * Check whether there is an item on a given day. + * + * Returns 2 if the selected day contains a regular event or appointment. + * Returns 1 if the selected day does not contain a regular event or + * appointment but an occurrence of a recurrent item. Returns 0 otherwise. */ int day_check_if_item(struct date day) { const time_t t = date2sec(day, 0, 0); + if (LLIST_FIND_FIRST(&eventlist, (time_t *)&t, event_inday)) + return 2; + + LLIST_TS_LOCK(&alist_p); + if (LLIST_TS_FIND_FIRST(&alist_p, (time_t *)&t, apoint_inday)) { + LLIST_TS_UNLOCK(&alist_p); + return 2; + } + LLIST_TS_UNLOCK(&alist_p); + if (LLIST_FIND_FIRST(&recur_elist, (time_t *)&t, recur_event_inday)) return 1; @@ -525,16 +538,6 @@ int day_check_if_item(struct date day) } LLIST_TS_UNLOCK(&recur_alist_p); - if (LLIST_FIND_FIRST(&eventlist, (time_t *)&t, event_inday)) - return 1; - - LLIST_TS_LOCK(&alist_p); - if (LLIST_TS_FIND_FIRST(&alist_p, (time_t *)&t, apoint_inday)) { - LLIST_TS_UNLOCK(&alist_p); - return 1; - } - LLIST_TS_UNLOCK(&alist_p); - return 0; } |