[gnome-calendar] week-header: continue fixing event positions



commit 0266202d40ec2dc0f3f3d32b4a25ecf2405a66bc
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Wed Mar 15 09:50:51 2017 -0300

    week-header: continue fixing event positions

 src/views/gcal-week-header.c |   24 ++++++++++++++++++++++++
 1 files changed, 24 insertions(+), 0 deletions(-)
---
diff --git a/src/views/gcal-week-header.c b/src/views/gcal-week-header.c
index 5707f75..3cbdc1b 100644
--- a/src/views/gcal-week-header.c
+++ b/src/views/gcal-week-header.c
@@ -1619,8 +1619,32 @@ gcal_week_header_add_event (GcalWeekHeader *self,
   /* Retrieve the real start and end dates */
   if (all_day)
     {
+      GDateTime *utc_week_start, *utc_week_end, *aux;
+
+      utc_week_start = g_date_time_new_utc (g_date_time_get_year (week_start),
+                                            g_date_time_get_month (week_start),
+                                            g_date_time_get_day_of_month (week_start),
+                                            0, 0, 0);
+      utc_week_end = g_date_time_new_utc (g_date_time_get_year (week_end),
+                                          g_date_time_get_month (week_end),
+                                          g_date_time_get_day_of_month (week_end),
+                                          0, 0, 0);
+
       start_date = g_date_time_ref (gcal_event_get_date_start (event));
       end_date = g_date_time_ref (gcal_event_get_date_end (event));
+
+      /*
+       * Switch the week start and end by the UTC variants, in
+       * order to correctly compare all-day events.
+       */
+      aux = week_start;
+      week_start = utc_week_start;
+      gcal_clear_datetime (&aux);
+
+      aux = week_end;
+      week_end = utc_week_end;
+      gcal_clear_datetime (&aux);
+
     }
   else
     {


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