0.8.11claws79
[claws.git] / src / folder.c
index 28f49c9bd59f7a110904fe23fac9fe9fd1d6a413..0761f254b4a23085aa7fbc94d991ef4d575522c4 100644 (file)
@@ -1206,12 +1206,21 @@ gint folder_item_scan(FolderItem *item)
        if (newmsg_list != NULL) {
                GSList *elem;
 
-               for (elem = newmsg_list; elem != NULL; elem = g_slist_next(elem))
-                       msgcache_add_msg(item->cache, elem->data);
+               for (elem = newmsg_list; elem != NULL; elem = g_slist_next(elem)) {
+                       MsgInfo *msginfo = (MsgInfo *) elem->data;
+
+                       msgcache_add_msg(item->cache, msginfo);
+                       if ((item->stype == F_INBOX) &&
+                           (item->folder->account != NULL) && 
+                           (item->folder->account->filter_on_recv) &&
+                           procmsg_msginfo_filter(msginfo))
+                               procmsg_msginfo_free(msginfo);
+                       else
+                               exists_list = g_slist_prepend(exists_list, msginfo);
+               }
+               g_slist_free(newmsg_list);
 
                update_flags |= F_ITEM_UPDATE_MSGCNT | F_ITEM_UPDATE_CONTENT;
-               
-               exists_list = g_slist_concat(exists_list, newmsg_list);
        }
 
        for (elem = exists_list; elem != NULL; elem = g_slist_next(elem)) {