talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit 14c2e7f03e532f546680b678a821bf5190853bcc
parent 343e20676f1113833c3553cf9d172b5e9b6cd629
Author: Paweł Pękala <c0rn@gazeta.pl>
Date:   Sun,  6 Nov 2011 11:24:30 +0000

2011-11-06 [pawel]	3.7.10cvs73

	* src/mimeview.c
	* src/messageview.c
		Optimize message displaying, in some conditions parts were
		displayed twice causing flickering. For example first html
		source and then rendering output from html plugin of the
		same part.

Diffstat:
MChangeLog | 9+++++++++
MPATCHSETS | 1+
Mconfigure.ac | 2+-
Msrc/messageview.c | 8++++++--
Msrc/mimeview.c | 16++++------------
5 files changed, 21 insertions(+), 15 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,3 +1,12 @@ +2011-11-06 [pawel] 3.7.10cvs73 + + * src/mimeview.c + * src/messageview.c + Optimize message displaying, in some conditions parts were + displayed twice causing flickering. For example first html + source and then rendering output from html plugin of the + same part. + 2011-11-05 [wwp] 3.7.10cvs72 * src/gtk/gtkaspell.c diff --git a/PATCHSETS b/PATCHSETS @@ -4276,3 +4276,4 @@ ( cvs diff -u -r 1.9.2.74 -r 1.9.2.75 src/gtk/gtkaspell.c; ) > 3.7.10cvs70.patchset ( cvs diff -u -r 1.9.2.75 -r 1.9.2.76 src/gtk/gtkaspell.c; ) > 3.7.10cvs71.patchset ( cvs diff -u -r 1.9.2.76 -r 1.9.2.77 src/gtk/gtkaspell.c; ) > 3.7.10cvs72.patchset +( cvs diff -u -r 1.83.2.177 -r 1.83.2.178 src/mimeview.c; cvs diff -u -r 1.94.2.222 -r 1.94.2.223 src/messageview.c; ) > 3.7.10cvs73.patchset diff --git a/configure.ac b/configure.ac @@ -12,7 +12,7 @@ MINOR_VERSION=7 MICRO_VERSION=10 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=72 +EXTRA_VERSION=73 EXTRA_RELEASE= EXTRA_GTK2_VERSION= diff --git a/src/messageview.c b/src/messageview.c @@ -1131,7 +1131,7 @@ gint messageview_show(MessageView *messageview, MsgInfo *msginfo, { gchar *text = NULL; gchar *file; - MimeInfo *mimeinfo, *encinfo, *brokeninfo; + MimeInfo *mimeinfo, *encinfo, *brokeninfo, *root; gchar *subject = NULL; cm_return_val_if_fail(msginfo != NULL, -1); @@ -1310,6 +1310,7 @@ gint messageview_show(MessageView *messageview, MsgInfo *msginfo, noticeview_show(messageview->noticeview); } + root = mimeinfo; mimeinfo = procmime_mimeinfo_next(mimeinfo); if (!all_headers && mimeinfo && (mimeinfo->type != MIMETYPE_TEXT || @@ -1381,7 +1382,8 @@ gint messageview_show(MessageView *messageview, MsgInfo *msginfo, if (!mimeinfo) mimeinfo = saved_mimeinfo; - mimeview_show_part(messageview->mimeview,mimeinfo); + if (!mimeview_show_part(messageview->mimeview, mimeinfo)) + mimeview_select_mimepart_icon(messageview->mimeview, root); goto done; } else if (prefs_common.invoke_plugin_on_html) { mimeview_select_mimepart_icon(messageview->mimeview, mimeinfo); @@ -1401,6 +1403,8 @@ gint messageview_show(MessageView *messageview, MsgInfo *msginfo, mimeinfo = procmime_mimeinfo_next(mimeinfo); } } + + mimeview_select_mimepart_icon(messageview->mimeview, root); done: /* plugins may hook in here to work with the message view */ hooks_invoke(MESSAGE_VIEW_SHOW_DONE_HOOKLIST, messageview); diff --git a/src/mimeview.c b/src/mimeview.c @@ -495,17 +495,9 @@ void mimeview_show_message(MimeView *mimeview, MimeInfo *mimeinfo, mimeview_set_multipart_tree(mimeview, mimeinfo, NULL); icon_list_clear(mimeview); icon_list_create(mimeview, mimeinfo); - + g_signal_handlers_unblock_by_func(G_OBJECT(ctree), mimeview_selected, mimeview); - - node = GTK_CMCTREE_NODE(GTK_CMCLIST(ctree)->row_list); - if (node) { - gtk_cmctree_select(ctree, node); - icon_list_toggle_by_mime_info - (mimeview, gtk_cmctree_node_get_row_data(ctree, node)); - gtkut_ctree_set_focus_row(ctree, node); - } } #ifdef USE_PTHREAD @@ -791,10 +783,10 @@ gboolean mimeview_show_part(MimeView *mimeview, MimeInfo *partinfo) if (mimeview->mimeviewer != NULL) mimeview->mimeviewer->clear_viewer(mimeview->mimeviewer); - if (mimeview->mimeviewer != viewer) { + if (mimeview->mimeviewer != viewer) mimeview->mimeviewer = viewer; - mimeview_change_view_type(mimeview, MIMEVIEW_VIEWER); - } + + mimeview_change_view_type(mimeview, MIMEVIEW_VIEWER); viewer->mimeview = mimeview; viewer->show_mimepart(viewer, mimeview->file, partinfo);