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)
|
recalculate_layout_blocks (GcalWeekGrid *self)
|
||||||
{
|
{
|
||||||
g_autoptr (GcalRangeTree) blocks_by_range = NULL;
|
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;
|
size_t n_events = 0;
|
||||||
|
|
||||||
GCAL_ENTRY;
|
GCAL_ENTRY;
|
||||||
@@ -301,6 +304,10 @@ recalculate_layout_blocks (GcalWeekGrid *self)
|
|||||||
|
|
||||||
blocks_by_range = gcal_range_tree_new ();
|
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 */
|
/* Remove all blocks */
|
||||||
g_ptr_array_set_size (self->layout_blocks, 0);
|
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);
|
event = g_list_model_get_item (G_LIST_MODEL (self->sort_model), i);
|
||||||
g_assert (GCAL_IS_EVENT (event));
|
g_assert (GCAL_IS_EVENT (event));
|
||||||
|
|
||||||
|
if (!gcal_event_overlaps (event, range))
|
||||||
|
continue;
|
||||||
|
|
||||||
event_range = gcal_event_get_range (event);
|
event_range = gcal_event_get_range (event);
|
||||||
|
|
||||||
blocks_at_range = gcal_range_tree_get_data_at_range (blocks_by_range, event_range);
|
blocks_at_range = gcal_range_tree_get_data_at_range (blocks_by_range, event_range);
|
||||||
|
|||||||
Reference in New Issue
Block a user