From b2838e034f09d0f98775ca0890cb4e4519600b9b Mon Sep 17 00:00:00 2001 From: Hari Rana Date: Sat, 19 Sep 2026 09:20:57 -0400 Subject: [PATCH] views/month-view: Follow day of week when scrolling Part-of: --- src/gui/views/gcal-month-view.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/gui/views/gcal-month-view.c b/src/gui/views/gcal-month-view.c index daedff64..e4958b43 100644 --- a/src/gui/views/gcal-month-view.c +++ b/src/gui/views/gcal-month-view.c @@ -233,14 +233,21 @@ static void update_active_date (GcalMonthView *self) { g_autoptr (GcalRange) top_row_range = NULL; + g_autoptr (GDateTime) top_row_date = NULL; g_autoptr (GDateTime) date = NULL; GtkWidget *top_row; + int first_weekday; + int weekday; top_row = g_ptr_array_index (self->week_rows, FIRST_VISIBLE_ROW_INDEX); top_row_range = gcal_month_view_row_get_range (GCAL_MONTH_VIEW_ROW (top_row)); g_assert (top_row_range != NULL); - date = gcal_range_get_start (top_row_range); + top_row_date = gcal_range_get_start (top_row_range); + first_weekday = g_date_time_get_day_of_week (top_row_date); + weekday = g_date_time_get_day_of_week (self->date); + + date = g_date_time_add_days (top_row_date, GCAL_NTH_WEEKDAY (weekday, first_weekday)); gcal_view_set_date (GCAL_VIEW (self), date); g_object_notify (G_OBJECT (self), "active-date"); }