[gnome-calendar] week-header: don't attempt to add events incorrectly



commit c2f3953dded40c9c18f97927c522ad849d5c3512
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Fri Mar 24 22:09:13 2017 -0300

    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 files changed, 10 insertions(+), 2 deletions(-)
---
diff --git a/src/views/gcal-week-header.c b/src/views/gcal-week-header.c
index 8168e7e..ae92a32 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);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]