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:
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);