From 032096185501894e9e0060bccc758d26372061e2 Mon Sep 17 00:00:00 2001 From: Radek Doulik Date: Wed, 5 Sep 2001 22:13:05 +0000 Subject: This patch should avoid flashing when loading images into mail view, credits go to Dan, Larry and me ;) (fixes ximian #6680) 2001-09-06 Radek Doulik * everywhere updated for new mail_content_loaded definition (prototype) 2001-09-05 Radek Doulik * mail-display.c (mail_display_redisplay): increase redisplay_counter (try_part_urls): new helper function (try_data_urls): ditto (load_content_loaded): if it has stream handle available and if it's still valid, it writes to this stream instead of redisplaying, uses try_part_urls and try_data_urls * mail-display.h: added redisplay_counter to MailDisplay, I use it in load_content_loaded to be sure that there wasn't any redisplay and that remembered handle is still valid * mail-display.c (on_url_requested): don't end stream with error if part is not loaded yet (on_url_requested): don't end stream in cases when we are going to load image using http (stream_write_or_redisplay_when_loaded): new helper function, which is extracted from mail_display_redisplay_when_loaded. it's extended to handle gtkhtml stream writting (mail_display_redisplay_when_loaded): use stream_write_or_redisplay_when_loaded (mail_display_stream_write_when_loaded): new function, uses stream_write_or_redisplay_when_loaded struct _load_content_msg: added handle, url and redisplay_counter fields * mail-format.c (mail_content_loaded): added redisplay, url and handle parameter for case when we are loading image content and want it write to stream instead of redisplaying svn path=/trunk/; revision=12633 --- mail/mail-display.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'mail/mail-display.h') diff --git a/mail/mail-display.h b/mail/mail-display.h index b08fa12927..5a6b76c257 100644 --- a/mail/mail-display.h +++ b/mail/mail-display.h @@ -27,6 +27,7 @@ struct _MailDisplay { EScrollFrame *scroll; GtkHTML *html; GtkHTMLStream *stream; + gint redisplay_counter; gpointer last_active; guint idle_id; @@ -55,6 +56,12 @@ void mail_display_redisplay_when_loaded (MailDisplay *md, gconstpointer key, void (*callback)(MailDisplay *, gpointer), gpointer data); +void mail_display_stream_write_when_loaded (MailDisplay *md, + gconstpointer key, + const gchar *url, + void (*callback)(MailDisplay *, gpointer), + GtkHTMLStream *handle, + gpointer data); void mail_display_set_message (MailDisplay *mail_display, CamelMedium *medium); -- cgit