diff options
-rw-r--r-- | addressbook/gui/widgets/eab-contact-formatter.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/addressbook/gui/widgets/eab-contact-formatter.c b/addressbook/gui/widgets/eab-contact-formatter.c index 5b61bcde19..f4b24a21bc 100644 --- a/addressbook/gui/widgets/eab-contact-formatter.c +++ b/addressbook/gui/widgets/eab-contact-formatter.c @@ -397,11 +397,18 @@ render_title_block (EABContactFormatter *formatter, photo_data); } else if (photo && photo->type == E_CONTACT_PHOTO_TYPE_URI && photo->data.uri && *photo->data.uri) { gboolean is_local = g_str_has_prefix (photo->data.uri, "file://"); + const gchar *uri = photo->data.uri; + /* WebKit 2.2 doesn't re-escape URIs, thus do this only for versions before this */ + #if !WEBKIT_CHECK_VERSION(2,2,0) gchar *unescaped = g_uri_unescape_string (photo->data.uri, NULL); + uri = unescaped; + #endif g_string_append_printf ( buffer, "<img border=\"1\" src=\"%s%s\">", - is_local ? "evo-" : "", unescaped); + is_local ? "evo-" : "", uri); + #if !WEBKIT_CHECK_VERSION(2,2,0) g_free (unescaped); + #endif } if (photo) @@ -871,13 +878,20 @@ render_compact (EABContactFormatter *formatter, if (photo->type == E_CONTACT_PHOTO_TYPE_URI && photo->data.uri && *photo->data.uri) { gboolean is_local = g_str_has_prefix (photo->data.uri, "file://"); + const gchar *uri = photo->data.uri; + /* WebKit 2.2 doesn't re-escape URIs, thus do this only for versions before this */ + #if !WEBKIT_CHECK_VERSION(2,2,0) gchar *unescaped = g_uri_unescape_string (photo->data.uri, NULL); + uri = unescaped; + #endif g_string_append_printf ( buffer, "<img width=\"%d\" height=\"%d\" src=\"%s%s\">", calced_width, calced_height, - is_local ? "evo-" : "", unescaped); + is_local ? "evo-" : "", uri); + #if !WEBKIT_CHECK_VERSION(2,2,0) g_free (unescaped); + #endif } else { gchar *photo_data; |