[evolution] I#641 - 'Mark messages as read' as account option not working for Search Folders



commit acf804b052c90ab5cd25bfa3c4ddc8208816ea71
Author: Milan Crha <mcrha redhat com>
Date:   Mon Sep 30 19:08:22 2019 +0200

    I#641 - 'Mark messages as read' as account option not working for Search Folders
    
    Closes https://gitlab.gnome.org/GNOME/evolution/issues/641

 src/mail/e-mail-reader-utils.c | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)
---
diff --git a/src/mail/e-mail-reader-utils.c b/src/mail/e-mail-reader-utils.c
index 2db5f04bc4..997bc93570 100644
--- a/src/mail/e-mail-reader-utils.c
+++ b/src/mail/e-mail-reader-utils.c
@@ -3420,6 +3420,39 @@ e_mail_reader_utils_get_mark_seen_setting (EMailReader *reader,
 
        folder = e_mail_reader_ref_folder (reader);
 
+       if (CAMEL_IS_VEE_FOLDER (folder)) {
+               GtkWidget *message_list_widget;
+
+               message_list_widget = e_mail_reader_get_message_list (reader);
+
+               if (IS_MESSAGE_LIST (message_list_widget)) {
+                       MessageList *message_list;
+
+                       message_list = MESSAGE_LIST (message_list_widget);
+
+                       if (message_list->cursor_uid) {
+                               CamelMessageInfo *nfo;
+
+                               nfo = camel_folder_get_message_info (folder, message_list->cursor_uid);
+
+                               if (nfo && CAMEL_IS_VEE_MESSAGE_INFO (nfo)) {
+                                       CamelFolder *real_folder;
+
+                                       real_folder = camel_vee_folder_get_location (CAMEL_VEE_FOLDER 
(folder),
+                                               CAMEL_VEE_MESSAGE_INFO (nfo), NULL);
+
+                                       if (real_folder) {
+                                               g_object_ref (real_folder);
+                                               g_object_unref (folder);
+                                               folder = real_folder;
+                                       }
+                               }
+
+                               g_clear_object (&nfo);
+                       }
+               }
+       }
+
        if (folder) {
                CamelStore *store;
                CamelThreeState cts_value;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]