Might be the final change for this bug, the two previous commits
were not using the right approach, causing regression in rendering
of text/* parts which were not named in the list of excluded content
types for a 'raw' formatting.
Using gtk_box_new() instead of gtk_vbox_new() changes the way child
widgets are packed by default via gtk_container_add(). gtk_vbox_new()
expands them by default, gtk_box_new() does not, and the preview pane
was being packed with gtk_container_add().
Packing widgets into a GtkBox with gtk_container_add() is usually the
wrong way. Use gtk_box_pack_start() instead, with expand=TRUE.
Using gtk_box_new() instead of gtk_vbox_new() changes the way child
widgets are packed by default via gtk_container_add(). gtk_vbox_new()
expands them by default, gtk_box_new() does not, and the preview pane
was being packed with gtk_container_add().
Packing widgets into a GtkBox with gtk_container_add() is usually the
wrong way. Use gtk_box_pack_start() instead, with expand=TRUE.
In e_mail_config_service_page_auto_configre(), we do detect that only
POP3 is available for MSN accounts and switch to the appropriate service
backend.
The problem was with the hack I added awhile back to momentarily skip to
the Receiving page just before skipping to the Summary page, so clicking
"Go Back" from the Summary page would return to the Receiving page.
That momentary skip triggered mail_config_assistant_prepare() on the
Receiving page, which then triggered e_mail_config_page_setup_defaults()
since the Receiving page was not yet in the visited pages hash table.
The Receiving page's setup_defaults() method reset the service backend
to IMAPX, which is the correct thing to do when not auto-configured.
The solution is add the Receiving page to the visited pages hash table
after a successful auto-configuration, but just BEFORE we momentarily
skip to it. This tricks mail_config_assistant_prepare() into thinking
the page was already visited, and it skips setting up defaults for it.
Also added the Sending page to visited pages, just for consistency.
Collect all the "config" extensions from the "addressbook", "calendar",
and "mail" modules into one place. These extensions typically just bind
GObject properties of extensible classes to app-specific GSettings keys.
This removes workarounds for below libsoup bugs and makes trust-prompt
for WebDAV based backends work better, by checking also server certificates.
* soup_message_get_https_status() now returns the certificate
and flags for unsuccessful https connections as well as
successful ones. [bug #690176]
* Fixed a deadlock when calling soup_session_abort() on
a SoupSessionSync in some cases. [bug #691399]
g_hash_table_add(table, key) uses less memory than
g_hash_table_insert(table, key, GINT_TO_POINTER (1)).
Also use g_hash_table_contains() when testing for membership.