shell-search-provider: Various fixes
This makes the GNOME Shell search provider functional.
-
shell-search-provider: Call
gcal_timeline_add_subscriber()
, otherwise no response is sent by the timeline. This requiresrange_start
andrange_end
to be always set. Also fix adding events to the response; these are always in the hash table. -
timeline: Set
complete
property in an idle function. This is needed because the events are sent to the subscriber in an idle function (timeline_source_dispatch()
), and it's important to ensure that these events are already sent before marking it complete. Also, always process the request even if the filter is the same, otherwise the search provider does not receive the complete signal in that case. -
calendar-monitor: Set incomplete state at the beginning when setting a filter. Without this, it's possible that setting the first calendar is already finished while the second calendar is not processed yet, but the timeline assumes that the whole process is finished already.
Closes: #1193