views/week: Don't deal with events out of range
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/742>
This commit is contained in:
committed by
Marge Bot
parent
c71fcf7029
commit
c084e28400
@@ -292,6 +292,9 @@ static void
|
||||
recalculate_layout_blocks (GcalWeekGrid *self)
|
||||
{
|
||||
g_autoptr (GcalRangeTree) blocks_by_range = NULL;
|
||||
g_autoptr (GDateTime) week_start = NULL;
|
||||
g_autoptr (GDateTime) week_end = NULL;
|
||||
g_autoptr (GcalRange) range = NULL;
|
||||
size_t n_events = 0;
|
||||
|
||||
GCAL_ENTRY;
|
||||
@@ -301,6 +304,10 @@ recalculate_layout_blocks (GcalWeekGrid *self)
|
||||
|
||||
blocks_by_range = gcal_range_tree_new ();
|
||||
|
||||
week_start = gcal_date_time_get_start_of_week (self->active_date);
|
||||
week_end = g_date_time_add_weeks (week_start, 1);
|
||||
range = gcal_range_new (week_start, week_end, GCAL_RANGE_DEFAULT);
|
||||
|
||||
/* Remove all blocks */
|
||||
g_ptr_array_set_size (self->layout_blocks, 0);
|
||||
|
||||
@@ -318,6 +325,9 @@ recalculate_layout_blocks (GcalWeekGrid *self)
|
||||
event = g_list_model_get_item (G_LIST_MODEL (self->sort_model), i);
|
||||
g_assert (GCAL_IS_EVENT (event));
|
||||
|
||||
if (!gcal_event_overlaps (event, range))
|
||||
continue;
|
||||
|
||||
event_range = gcal_event_get_range (event);
|
||||
|
||||
blocks_at_range = gcal_range_tree_get_data_at_range (blocks_by_range, event_range);
|
||||
|
||||
Reference in New Issue
Block a user