From b0813fb605f864d999cbee0add0518d1850ec61b Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Sat, 2 Sep 2023 10:24:46 -0300 Subject: [PATCH] month-view-row: Clamp last cell to [first cell, 6] This is not ideal but it's what we've got for now. Closes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1083 --- src/gui/views/gcal-month-view-row.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/gui/views/gcal-month-view-row.c b/src/gui/views/gcal-month-view-row.c index 45461759..17b9f8aa 100644 --- a/src/gui/views/gcal-month-view-row.c +++ b/src/gui/views/gcal-month-view-row.c @@ -113,22 +113,22 @@ calculate_event_cells (GcalMonthViewRow *self, gint *out_first_cell, gint *out_last_cell) { + g_autoptr (GDateTime) range_start = NULL; + g_autoptr (GDateTime) start_date = NULL; gboolean all_day; + gint first_cell; + + g_assert (out_first_cell != NULL || out_last_cell != NULL); all_day = gcal_event_get_all_day (event); + range_start = gcal_range_get_start (self->range); + start_date = gcal_event_get_date_start (event); + start_date = all_day ? g_date_time_ref (start_date) : g_date_time_to_local (start_date); + first_cell = MAX (gcal_date_time_compare_date (start_date, range_start), 0); /* Start date */ if (out_first_cell) - { - g_autoptr (GDateTime) range_start = NULL; - g_autoptr (GDateTime) start_date = NULL; - - range_start = gcal_range_get_start (self->range); - start_date = gcal_event_get_date_start (event); - start_date = all_day ? g_date_time_ref (start_date) : g_date_time_to_local (start_date); - - *out_first_cell = MAX (gcal_date_time_compare_date (start_date, range_start), 0); - } + *out_first_cell = first_cell; /* * The logic for the end date is the same, except that we have to check @@ -149,7 +149,7 @@ calculate_event_cells (GcalMonthViewRow *self, if (all_day) last_cell--; - *out_last_cell = MIN (last_cell, 6); + *out_last_cell = CLAMP (last_cell, first_cell, 6); } }