diff --git a/src/gcal-window.c b/src/gcal-window.c index 8548f069..d4ed8df9 100644 --- a/src/gcal-window.c +++ b/src/gcal-window.c @@ -414,8 +414,12 @@ update_active_date (GcalWindow *window, !g_date_valid (&old_week) || g_date_get_iso8601_week_of_year (&old_week) != g_date_get_iso8601_week_of_year (&new_week)) { + gint offset; + + offset = g_date_time_get_day_of_week (date_start) % 7 + get_first_weekday (); + date_start = g_date_time_new_local (new_date->year, new_date->month, new_date->day, 0, 0, 0); - date_start = g_date_time_add_days (date_start, (get_first_weekday () - g_date_time_get_day_of_week (date_start) + 7) % 7 - 7); + date_start = g_date_time_add_days (date_start, offset); range_start = g_date_time_to_unix (date_start); date_end = g_date_time_add_days (date_start, 7);