The overflow layout used to display "Other X events" text when
there is no enough space to accomodate more events.
But due to the way the events were sorted, some events are folded to
'Other events' popover even when the cell has enough space to accomodate
the event(s) or when it is not required to be folded.
We rework how the events will be sorted. First, the events are sorted by their
start dates(starting with the closest). But if two or more events have same start date
then they are sorted according to their lengths. And still if they have same start
date and length then they are sorted according to their modified times(the closest first).
https://bugzilla.gnome.org/show_bug.cgi?id=778478
When we modify an event, the start date may change
and there is no way to retrieve it back. Since we're
relying on the start date to get the cell number and,
remove the widget, it leads to a crash because the
widget is not removed.
Fix that by brute-forcely search the widget in the
correct table.
After we added GcalEvent::is_multiday(), there is no need to
wrap it in a vfunc anymore.
To fix it, simply use is_multiday() function and get rid of the
vfunc.
GcalEventWidget added API to automatically change
the widget rendering according to the initial and
final dates. Month view, however, was still handling
it manually (and wrongly).
Fix that by reworking the allocation code, documenting
it and using the apropriate API from GcalEventWidget.
This is more of a semantic change than anything else. GcalSubscriber
will gradually take on GcalView interface and that's why I'm adding the
View suffix.