diff options
author | Dan Winship <danw@src.gnome.org> | 2001-12-10 22:34:45 +0800 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2001-12-10 22:34:45 +0800 |
commit | 7cdf441965e654cc407a245482ee17467fb376e8 (patch) | |
tree | bf4c6da991f807d6736c7842de216358af6ecd5b /mail/mail-display.c | |
parent | 4e5542ad2842655ab1a8e424d367331311177bcb (diff) | |
download | gsoc2013-evolution-7cdf441965e654cc407a245482ee17467fb376e8.tar.gz gsoc2013-evolution-7cdf441965e654cc407a245482ee17467fb376e8.tar.zst gsoc2013-evolution-7cdf441965e654cc407a245482ee17467fb376e8.zip |
Don't just assume all of the GtkHTMLEmbedded's fields are filled in, since
* mail-display.c (on_object_requested): Don't just assume all of
the GtkHTMLEmbedded's fields are filled in, since HTML messages
may have <object>s in them that we're not expecting.
* mail-send-recv.c (mail_send_receive): Add a "current_folder"
arg.
(build_dialogue): Remember the current_folder
(free_send_data): If current_folder is set, refresh it so it's
guaranteed to be synced with the folder tree. Fixes #14770.
* mail-callbacks.c (send_receive_mail): Pass current_folder to
mail_send_receive().
svn path=/trunk/; revision=14950
Diffstat (limited to 'mail/mail-display.c')
-rw-r--r-- | mail/mail-display.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/mail/mail-display.c b/mail/mail-display.c index 8b4545880a..4746c348aa 100644 --- a/mail/mail-display.c +++ b/mail/mail-display.c @@ -952,11 +952,14 @@ on_object_requested (GtkHTML *html, GtkHTMLEmbedded *eb, gpointer data) GHashTable *urls; CamelMimePart *part; + if (!eb->classid) + return FALSE; + urls = g_datalist_get_data (md->data, "part_urls"); if (!urls) return FALSE; - if (!strncmp (eb->classid, "popup:", 6)) { + if (!strncmp (eb->classid, "popup:", 6) && eb->type) { part = g_hash_table_lookup (urls, eb->classid + 6); if (!CAMEL_IS_MIME_PART (part)) return FALSE; @@ -966,7 +969,7 @@ on_object_requested (GtkHTML *html, GtkHTMLEmbedded *eb, gpointer data) if (!CAMEL_IS_MIME_PART (part)) return FALSE; return do_signature (html, eb, part, md); - } else if (!strncmp (eb->classid, "cid:", 4)) { + } else if (!strncmp (eb->classid, "cid:", 4) && eb->type) { part = g_hash_table_lookup (urls, eb->classid); if (!CAMEL_IS_MIME_PART (part)) return FALSE; |