Both EWebView and EMailDisplay listen for "changed" signals from a
GSettings instance, passing itself as the 'user_data' to the signal
handler e_web_view_update_fonts(). But in both cases the signal
handler was left connected after EWebView and EMailDisplay were
finalized, resulting in the signal handler receiving a dangling pointer.
Not using g_signal_connect_object() here because of the unresolved
reference leak issue in GObject. The GSettings instance is likely
cached internally and lives well beyond EWebView and EMailDisplay.
Workaround for a WebKit bug [0] which appeared in 1.9.x series.
When message is loaded, the content is zoomed in and out to force
WebKit to recalculate and redraw the iframe so that the content
is correctly visible
[0] https://bugs.webkit.org/show_bug.cgi?id=89553
The GtkStyle's GTK_STATE_ACTIVE background color can match background
color of GTK_STATE_NORMAL, when there is not visible selected days
in the calendar, thus fallback to GTK_STATE_SELECTED colors in that
case.
JavaScript is disabled in EWebView, so any attempt to evaluate
a JavaScript code will fail. We are using DOM bindings
instead to interact with the document.
This commit removes some helper functions created in the early
days of WebKit port which are not used anymore and also fixes
mail-to-task plugin, which was relying on some JavaScript.
According to [1], we don't need to worry about GDK's global lock since
we don't call gdk_threads_init() or gdk_threads_set_lock_functions().
The GDK threads API is being aggressively deprecated by GTK+ developers
so let's just abandon it entirely. I've never really understood when
you're supposed to use it or not use it anyway, so it's good to be rid
of this confusion.
[1] https://mail.gnome.org/archives/desktop-devel-list/2012-August/msg00005.html
This required some reworking of assumptions I made early on when I first
wrote ESourceConfig, before I thought up the whole "collection" concept.
Not all ESourceConfigBackends will use a fixed parent UID, specifically
collection backends. In fact we may use multiple instances of the same
ESourceConfigBackend subclass if, for example, a user has two different
Exchange Web Services accounts configured. We would need to show both
EWS account (or "collection") names in the "Type" combo box.
For the moment collection-based ESourceConfigBackends are not listed
when creating a new calendar or address book since we lack support for
creating new resources on a remote server. A D-Bus interface for that
is in the works.