From fd5e6daf13cd2d66f1508b405712afe892e8870a Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Mon, 30 Apr 2018 22:19:13 -0300 Subject: [PATCH] event-widget: use correct end date on tooltip The end date of all-day events should have one day decreased, since the final day is not technically what the user expects it to be. Issue: #257 --- src/gcal-event-widget.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/gcal-event-widget.c b/src/gcal-event-widget.c index 903d24dd..ad010255 100644 --- a/src/gcal-event-widget.c +++ b/src/gcal-event-widget.c @@ -310,9 +310,6 @@ gcal_event_widget_set_event_tooltip (GcalEventWidget *self, escaped_summary = g_markup_escape_text (gcal_event_get_summary (event), -1); g_string_append_printf (tooltip_mesg, "%s", escaped_summary); - tooltip_start = g_date_time_to_local (gcal_event_get_date_start (event)); - tooltip_end = g_date_time_to_local (gcal_event_get_date_end (event)); - allday = gcal_event_get_all_day (event); multiday = gcal_event_is_multiday (event); @@ -320,6 +317,10 @@ gcal_event_widget_set_event_tooltip (GcalEventWidget *self, if (allday) { + /* All day events span from [ start, end - 1 day ] */ + tooltip_start = g_date_time_ref (gcal_event_get_date_start (event)); + tooltip_end = g_date_time_add_days (gcal_event_get_date_end (event), -1); + if (multiday) { start = g_date_time_format (tooltip_start, "%x"); @@ -333,6 +334,9 @@ gcal_event_widget_set_event_tooltip (GcalEventWidget *self, } else { + tooltip_start = g_date_time_to_local (gcal_event_get_date_start (event)); + tooltip_end = g_date_time_to_local (gcal_event_get_date_end (event)); + if (multiday) { if (self->clock_format_24h) @@ -395,9 +399,7 @@ gcal_event_widget_set_event_tooltip (GcalEventWidget *self, if (allday && !multiday) { - g_string_append_printf (tooltip_mesg, - "\n%s", - start); + g_string_append_printf (tooltip_mesg, "\n%s", start); } else {