2011-11-06 [pawel] 3.7.10cvs73
authorPaweł Pękala <c0rn@gazeta.pl>
Sun, 6 Nov 2011 11:24:30 +0000 (11:24 +0000)
committerPaweł Pękala <c0rn@gazeta.pl>
Sun, 6 Nov 2011 11:24:30 +0000 (11:24 +0000)
* 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.

ChangeLog
PATCHSETS
configure.ac
src/messageview.c
src/mimeview.c

index d7bc1e103c7f19028ebe53df871f3a3a16df1a8f..86d2495b9ab4b82227b11d72d82fd9bc31442bdd 100644 (file)
--- 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
index 09904454c475d57d1257f4903d6b08010060f6c9..fa93593bdffd3e466d71486c0bd93afb0178046a 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( 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
index a41ee542b9e77580b17cf64bf0fffb963d7b6625..ab7de4b043be955c675fa1a472a39a7bc79486f1 100644 (file)
@@ -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=
 
index 6e94f5e8d0bcc3994d07d194f58c1765a6b450b3..5fafedb4f76cca74f87b56944055415a5fda2dfd 100644 (file)
@@ -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);
index 57688f59e885d0348df3bb15fd423ee89844dfe9..50e6bf3575154cc83f701e746aa19954ceb31727 100644 (file)
@@ -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);