diff options
Diffstat (limited to 'calendar/gui/e-day-view-main-item.c')
-rw-r--r-- | calendar/gui/e-day-view-main-item.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/calendar/gui/e-day-view-main-item.c b/calendar/gui/e-day-view-main-item.c index 757d4e90fd..5de9b76546 100644 --- a/calendar/gui/e-day-view-main-item.c +++ b/calendar/gui/e-day-view-main-item.c @@ -107,6 +107,9 @@ day_view_main_item_draw_long_events_in_vbars (EDayViewMainItem *main_item, gboolean first = TRUE; event = &g_array_index (day_view->long_events, EDayViewEvent, event_num); + if (!is_comp_data_valid (event)) + continue; + /* If the event is TRANSPARENT, skip it. */ if (icalcomp_is_transparent (event->comp_data->icalcomp)) { continue; @@ -248,9 +251,15 @@ day_view_main_item_draw_day_event (EDayViewMainItem *main_item, font_options = get_font_options (); + if (!is_array_index_in_bounds (day_view->events[day], event_num)) + return; + event = &g_array_index (day_view->events[day], EDayViewEvent, event_num); + if (!is_comp_data_valid (event)) + return; + /* Fill in the event background. Note that for events in the first column of the day, we might not want to paint over the vertical bar, since that is used for multiple events. But then you can't see @@ -866,6 +875,9 @@ day_view_main_item_draw_events_in_vbars (EDayViewMainItem *main_item, for (event_num = 0; event_num < day_view->events[day]->len; event_num++) { event = &g_array_index (day_view->events[day], EDayViewEvent, event_num); + if (!is_comp_data_valid (event)) + continue; + /* We can skip the events in the first column since they will draw over this anyway. */ if (event->num_columns > 0 && event->start_row_or_col == 0) { |