From c2f3953dded40c9c18f97927c522ad849d5c3512 Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Fri, 24 Mar 2017 22:09:13 -0300 Subject: [PATCH] week-header: don't attempt to add events incorrectly One of the biggest issues of GNOME Calendar views right now is that they rely on GObject property system to update the active date. Even gcal_view_set_date() is just a wrapper around GObject set. Because GObject asynchronously updates the property by letting the mainloop handle it, we can never be assured that all the views had their views updated before updating the data model. This patch temporarily adds sanity checks to GcalWeekHeader to prevent making Calendar unusable, until we fix GcalView. --- src/views/gcal-week-header.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/views/gcal-week-header.c b/src/views/gcal-week-header.c index 8168e7e3..ae92a32c 100644 --- a/src/views/gcal-week-header.c +++ b/src/views/gcal-week-header.c @@ -367,9 +367,10 @@ update_overflow (GcalWeekHeader *self) gtk_label_set_label (GTK_LABEL (label), text); g_free (text); } - else + else if (label) { - g_clear_pointer (&self->overflow_label[i], gtk_widget_destroy); + gtk_widget_destroy (label); + self->overflow_label[i] = NULL; } } @@ -1668,6 +1669,13 @@ gcal_week_header_add_event (GcalWeekHeader *self, else end = 6; + /* Sanity checks */ + if (start > end || start > 6 || end < 0) + { + g_warning ("Error adding event '%s' to the week header", gcal_event_get_summary (event)); + return; + } + /* Add the event widget to the grid */ add_event_to_grid (self, event, start, end);