From 2b78d57459e491fdd2b6d57355112c45624ad8f8 Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Tue, 1 Aug 2023 17:36:31 +0200 Subject: [PATCH] calendar-monitor: Don't replace new events If an event is already present in the cache, don't attempt to insert it, which replaces the available event instance with the new one. --- src/core/gcal-calendar-monitor.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/core/gcal-calendar-monitor.c b/src/core/gcal-calendar-monitor.c index 6fcfe65b..52be68e0 100644 --- a/src/core/gcal-calendar-monitor.c +++ b/src/core/gcal-calendar-monitor.c @@ -1046,8 +1046,11 @@ add_events_to_timeline_in_idle_cb (gpointer user_data) event = g_ptr_array_index (events, i); uid = gcal_event_get_uid (event); - if (g_hash_table_insert (self->shared.events, g_strdup (uid), g_object_ref (event))) - g_signal_emit (self, signals[EVENT_ADDED], 0, event); + if (!g_hash_table_contains (self->shared.events, uid)) + { + g_hash_table_insert (self->shared.events, g_strdup (uid), g_object_ref (event)); + g_signal_emit (self, signals[EVENT_ADDED], 0, event); + } } GCAL_RETURN (G_SOURCE_REMOVE);