An Exchange server, eventually also a GroupWise server, can break a GPG
encrypted message structure by changing it from
multipart/encrypted; protocol="application/pgp-encrypted"
application/pgp-encrypted
application/octet-stream; name="encrypted.asc"
to something like:
multipart/mixed
text/plain
application/pgp-encrypted; name="ATT00001"
application/octet-stream; name="encrypted.asc"
where the text/plain part is empty and is added by the Exchange server.
The added code tries to detect such issues and if recognized, then
changes the structure to be able to decrypt the message as expected.
Most of the EAlertSink implementors use EAlertBar to present those
alerts and all of these had almost identical code to deal with it.
The added function is for these implementations to share the code.
Right-click and create new event or task already derives the calendar/task
list of the selected component. This derives also selected date, thus for
example creating a new event and right-clicking on the 'Tomorrow' row
the event will be prefilled with the Tomorrow date and the nearest
future time of the current time according to set time division for
the Day and Work Week views.
That was a memory leak, but apart of that it could also cause use-after-free
crash in gtk_widget_get_scale_factor() under _gtk_style_cascade_add_provider()
called from shell_window_constructed(), when creating a new shell window
for the second time, with the previous one already closed.
It makes the window to activate the Mail view, but it fails to switch
to the correct folder. The problem was that folder_name was actually
the folder_uri.