[gnome-calendar/gnome-3-36] timeline: Only modify event tree once
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-calendar/gnome-3-36] timeline: Only modify event tree once
- Date: Thu, 16 Apr 2020 19:57:27 +0000 (UTC)
commit a5a464a975bd91224b029fca4d5e93a9c732ae18
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]