[gnome-calendar] timeline: Only modify event tree once



commit a1a48043158612a493e1382e71501f1577ad1e68
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Wed Apr 15 19:16:00 2020 -0300

    timeline: Only modify event tree once
    
    Now that we queue one event per subscriber, we need to
    make sure to update the range tree only once.

 src/core/gcal-timeline.c | 27 +++++++++++++++++++++------
 1 file changed, 21 insertions(+), 6 deletions(-)
---
diff --git a/src/core/gcal-timeline.c b/src/core/gcal-timeline.c
index bd098958..7c51ea22 100644
--- a/src/core/gcal-timeline.c
+++ b/src/core/gcal-timeline.c
@@ -450,8 +450,13 @@ on_calendar_monitor_event_added_cb (GcalCalendarMonitor *monitor,
 
   for (i = 0; subscribers_at_range && i < subscribers_at_range->len; i++)
     {
-      GcalTimelineSubscriber *subscriber = g_ptr_array_index (subscribers_at_range, i);
-      queue_event_data (self, ADD_EVENT, subscriber, event, NULL, TRUE);
+      GcalTimelineSubscriber *subscriber;
+      gboolean update_ranges;
+
+      subscriber = g_ptr_array_index (subscribers_at_range, i);
+      update_ranges = i == 0;
+
+      queue_event_data (self, ADD_EVENT, subscriber, event, NULL, update_ranges);
     }
 
   GCAL_EXIT;
@@ -477,8 +482,13 @@ on_calendar_monitor_event_updated_cb (GcalCalendarMonitor *monitor,
 
   for (i = 0; subscribers_at_range && i < subscribers_at_range->len; i++)
     {
-      GcalTimelineSubscriber *subscriber = g_ptr_array_index (subscribers_at_range, i);
-      queue_event_data (self, UPDATE_EVENT, subscriber, event, old_event, TRUE);
+      GcalTimelineSubscriber *subscriber;
+      gboolean update_ranges;
+
+      subscriber = g_ptr_array_index (subscribers_at_range, i);
+      update_ranges = i == 0;
+
+      queue_event_data (self, UPDATE_EVENT, subscriber, event, old_event, update_ranges);
     }
 
   GCAL_EXIT;
@@ -502,8 +512,13 @@ on_calendar_monitor_event_removed_cb (GcalCalendarMonitor *monitor,
 
   for (i = 0; subscribers_at_range && i < subscribers_at_range->len; i++)
     {
-      GcalTimelineSubscriber *subscriber = g_ptr_array_index (subscribers_at_range, i);
-      queue_event_data (self, REMOVE_EVENT, subscriber, event, NULL, TRUE);
+      GcalTimelineSubscriber *subscriber;
+      gboolean update_ranges;
+
+      subscriber = g_ptr_array_index (subscribers_at_range, i);
+      update_ranges = i == 0;
+
+      queue_event_data (self, REMOVE_EVENT, subscriber, event, NULL, update_ranges);
     }
 
   GCAL_EXIT;


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