[gnome-calendar/gnome-3-28] event-widget: use correct end date on tooltip



commit aa411e19dbd35286112b1b3cd751bf99f4806615
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Mon Apr 30 22:19:13 2018 -0300

    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, "<b>%s</b>", 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
     {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]