[evolution-data-server/gnome-3-34] I#169 - Detached instances shown as with floating time



commit c23767ab261dc08ad4650f64d9a0f795c1802a1c
Author: Milan Crha <mcrha redhat com>
Date:   Thu Oct 24 15:03:49 2019 +0200

    I#169 - Detached instances shown as with floating time
    
    Closes https://gitlab.gnome.org/GNOME/evolution-data-server/issues/169

 src/calendar/libecal/e-cal-client.c | 21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)
---
diff --git a/src/calendar/libecal/e-cal-client.c b/src/calendar/libecal/e-cal-client.c
index 4cf3b14ba..c2bd27c80 100644
--- a/src/calendar/libecal/e-cal-client.c
+++ b/src/calendar/libecal/e-cal-client.c
@@ -2443,10 +2443,27 @@ generate_instances (ECalClient *client,
                        }
 
                        ci->start = i_cal_time_clone (e_cal_component_datetime_get_value (dtstart));
+                       if (e_cal_component_datetime_get_tzid (dtstart)) {
+                               ICalTimezone *zone;
 
-                       if (dtend && e_cal_component_datetime_get_value (dtend))
+                               zone = e_cal_client_tzlookup_cb (e_cal_component_datetime_get_tzid (dtstart), 
client, NULL, NULL);
+
+                               if (zone)
+                                       i_cal_time_set_timezone (ci->start, zone);
+                       }
+
+                       if (dtend && e_cal_component_datetime_get_value (dtend)) {
                                ci->end = i_cal_time_clone (e_cal_component_datetime_get_value (dtend));
-                       else {
+
+                               if (e_cal_component_datetime_get_tzid (dtend)) {
+                                       ICalTimezone *zone;
+
+                                       zone = e_cal_client_tzlookup_cb (e_cal_component_datetime_get_tzid 
(dtend), client, NULL, NULL);
+
+                                       if (zone)
+                                               i_cal_time_set_timezone (ci->end, zone);
+                               }
+                       } else {
                                ci->end = i_cal_time_clone (ci->start);
 
                                if (i_cal_time_is_date (e_cal_component_datetime_get_value (dtstart)))


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