• Michael Gratton's avatar
    Ensure conversations that have no email in the base folder are dropped · 9619d18e
    Michael Gratton authored
    If a least one email in a conversation that is in the base folder but
    also in another is removed from the base folder, the conversation may
    not be removed from the monitor despite possibly not having any email
    in the base folder, since the email may not have been completely removed
    from the conversation.
    
    This was particulary being seen with GMail accounts where even single
    message conversations were not disappering when trashed because the
    converation's email was still in All Mail.
    
    This fix does a few things: Avoids hitting the database when checking
    a conversation still has email in the base folder, when it does check
    only ensures that email are in the base folder, not *any* folder, and
    updates ConversationSet::remove_all_emails_by_identifier to do this
    check iternally, clean up its API and implementation and avoids having
    to use out args calling it.
    9619d18e
test-case.vala 9.22 KB