edit-dialog: Don't convert date to timezone if all-day
When the all-day checkbox is ticked, transforming to the UTC timezone may change the dates of the event. On positive timezone offsets, this happens frequently. Fix that by only transforming to a timezone when the event is not marked as all-day. Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/issues/338
This commit is contained in:
@@ -316,14 +316,17 @@ return_datetime_for_widgets (GcalEditDialog *self,
|
|||||||
all_day ? 0 : g_date_time_get_minute (time),
|
all_day ? 0 : g_date_time_get_minute (time),
|
||||||
0);
|
0);
|
||||||
|
|
||||||
date_in_best_tz = g_date_time_to_timezone (date_in_local_tz, timezone);
|
if (all_day)
|
||||||
|
date_in_best_tz = g_date_time_ref (date_in_local_tz);
|
||||||
|
else
|
||||||
|
date_in_best_tz = g_date_time_to_timezone (date_in_local_tz, timezone);
|
||||||
|
|
||||||
retval = g_date_time_new (timezone,
|
retval = g_date_time_new (timezone,
|
||||||
g_date_time_get_year (date_in_best_tz),
|
g_date_time_get_year (date_in_best_tz),
|
||||||
g_date_time_get_month (date_in_best_tz),
|
g_date_time_get_month (date_in_best_tz),
|
||||||
g_date_time_get_day_of_month (date_in_best_tz),
|
g_date_time_get_day_of_month (date_in_best_tz),
|
||||||
all_day ? 0 : g_date_time_get_hour (date_in_best_tz),
|
g_date_time_get_hour (date_in_best_tz),
|
||||||
all_day ? 0 : g_date_time_get_minute (date_in_best_tz),
|
g_date_time_get_minute (date_in_best_tz),
|
||||||
0);
|
0);
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
|
|||||||
Reference in New Issue
Block a user