From: Paweł Pękala Date: Sun, 6 Nov 2011 11:24:30 +0000 (+0000) Subject: 2011-11-06 [pawel] 3.7.10cvs73 X-Git-Tag: REL_3_8_0~41 X-Git-Url: http://git.claws-mail.org/?p=claws.git;a=commitdiff_plain;h=14c2e7f03e532f546680b678a821bf5190853bcc 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. --- diff --git a/ChangeLog b/ChangeLog index d7bc1e103..86d2495b9 100644 --- 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 index 09904454c..fa93593bd 100644 --- 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 index a41ee542b..ab7de4b04 100644 --- 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 index 6e94f5e8d..5fafedb4f 100644 --- 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 index 57688f59e..50e6bf357 100644 --- 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);