aboutsummaryrefslogtreecommitdiffstats
path: root/mail
diff options
context:
space:
mode:
authorChenthill Palanisamy <pchenthill@novell.com>2009-12-28 21:12:28 +0800
committerChenthill Palanisamy <pchenthill@novell.com>2009-12-28 21:14:09 +0800
commit6a72dacb7db51cd0f6b84e9aefd248677c0ff4e0 (patch)
tree8dc7acf0ca7bff50ece62f1c95db2493deb15a23 /mail
parent32bc83c91d575d7258252a9c532309e8e9015d84 (diff)
downloadgsoc2013-evolution-6a72dacb7db51cd0f6b84e9aefd248677c0ff4e0.tar
gsoc2013-evolution-6a72dacb7db51cd0f6b84e9aefd248677c0ff4e0.tar.gz
gsoc2013-evolution-6a72dacb7db51cd0f6b84e9aefd248677c0ff4e0.tar.bz2
gsoc2013-evolution-6a72dacb7db51cd0f6b84e9aefd248677c0ff4e0.tar.lz
gsoc2013-evolution-6a72dacb7db51cd0f6b84e9aefd248677c0ff4e0.tar.xz
gsoc2013-evolution-6a72dacb7db51cd0f6b84e9aefd248677c0ff4e0.tar.zst
gsoc2013-evolution-6a72dacb7db51cd0f6b84e9aefd248677c0ff4e0.zip
Bug 361145 - Evolution hangs when formatting message - fixes part of it.
Diffstat (limited to 'mail')
-rw-r--r--mail/e-mail-backend.c2
-rw-r--r--mail/em-format-html-display.c19
-rw-r--r--mail/mail-session.c3
3 files changed, 20 insertions, 4 deletions
diff --git a/mail/e-mail-backend.c b/mail/e-mail-backend.c
index 65633da097..4ab444027f 100644
--- a/mail/e-mail-backend.c
+++ b/mail/e-mail-backend.c
@@ -342,7 +342,7 @@ mail_backend_folder_changed_cb (MailFolderCache *folder_cache,
gint flags = 0;
if (!mail_folder_cache_get_folder_from_uri (folder_cache, folder_uri, &folder))
- if (!mail_folder_cache_get_folder_info_flags (folder_cache, folder, &flags))
+ if (folder && !mail_folder_cache_get_folder_info_flags (folder_cache, folder, &flags))
g_return_if_reached ();
target = em_event_target_new_folder (
diff --git a/mail/em-format-html-display.c b/mail/em-format-html-display.c
index c795929091..9228aec472 100644
--- a/mail/em-format-html-display.c
+++ b/mail/em-format-html-display.c
@@ -799,10 +799,24 @@ efhd_attachment_button(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPObje
EAttachment *attachment;
GtkWidget *widget;
gpointer parent;
+ EMFormat *emf = (EMFormat *) efh;
+ CamelMessageInfo *mi = NULL;
+ CamelMessageContentInfo *ci = NULL;
+ GFileInfo *fileinfo;
+ guint32 size;
/* FIXME: handle default shown case */
d(printf("adding attachment button/content\n"));
+ mi = camel_folder_summary_uid (emf->folder->summary, emf->uid);
+ ci = camel_folder_summary_guess_content_info (mi, ((CamelDataWrapper *)pobject->part)->mime_type);
+ if (ci) {
+ size = ci->size;
+ /* what if its not encoded in base64 ? is it a case to consider? */
+ if (ci->encoding && !g_ascii_strcasecmp (ci->encoding, "base64"))
+ size = size/1.37;
+ }
+
info = (struct _attach_puri *)em_format_find_puri((EMFormat *)efh, pobject->classid);
if (!info || info->forward) {
@@ -828,6 +842,11 @@ efhd_attachment_button(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPObje
e_attachment_load_async (
info->attachment, (GAsyncReadyCallback)
e_attachment_load_handle_error, parent);
+ if (size != 0) {
+ fileinfo = e_attachment_get_file_info (info->attachment);
+ g_file_info_set_size (fileinfo, size);
+ e_attachment_set_file_info (info->attachment, fileinfo);
+ }
widget = e_attachment_button_new (view);
e_attachment_button_set_attachment (
diff --git a/mail/mail-session.c b/mail/mail-session.c
index a5cd5a6ed7..0341b5f050 100644
--- a/mail/mail-session.c
+++ b/mail/mail-session.c
@@ -432,9 +432,6 @@ alert_user(CamelSession *session, CamelSessionAlertType type, const gchar *promp
struct _user_message_msg *m;
gboolean result = TRUE;
- if (!mail_session->interactive)
- return FALSE;
-
m = mail_msg_new (&user_message_info);
m->ismain = mail_in_main_thread ();
m->type = type;