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.
This commit is contained in:
@@ -450,8 +450,13 @@ on_calendar_monitor_event_added_cb (GcalCalendarMonitor *monitor,
|
|||||||
|
|
||||||
for (i = 0; subscribers_at_range && i < subscribers_at_range->len; i++)
|
for (i = 0; subscribers_at_range && i < subscribers_at_range->len; i++)
|
||||||
{
|
{
|
||||||
GcalTimelineSubscriber *subscriber = g_ptr_array_index (subscribers_at_range, i);
|
GcalTimelineSubscriber *subscriber;
|
||||||
queue_event_data (self, ADD_EVENT, subscriber, event, NULL, TRUE);
|
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;
|
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++)
|
for (i = 0; subscribers_at_range && i < subscribers_at_range->len; i++)
|
||||||
{
|
{
|
||||||
GcalTimelineSubscriber *subscriber = g_ptr_array_index (subscribers_at_range, i);
|
GcalTimelineSubscriber *subscriber;
|
||||||
queue_event_data (self, UPDATE_EVENT, subscriber, event, old_event, TRUE);
|
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;
|
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++)
|
for (i = 0; subscribers_at_range && i < subscribers_at_range->len; i++)
|
||||||
{
|
{
|
||||||
GcalTimelineSubscriber *subscriber = g_ptr_array_index (subscribers_at_range, i);
|
GcalTimelineSubscriber *subscriber;
|
||||||
queue_event_data (self, REMOVE_EVENT, subscriber, event, NULL, TRUE);
|
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;
|
GCAL_EXIT;
|
||||||
|
|||||||
Reference in New Issue
Block a user