Kostya,
I select a bunch of messages, then do some action that moves them away, e.g. "Move to spam".
Then the app connects to the server, and while it is doing this, the messages in question are unselected and are shown in the mailbox. So, for a few moments it looks like nothing has been done. It is long enough that I am doubting if made a mistake and I didn't select some of them and start looking at what is happening.
(Since with one of the servers, I occasionally have a situation when a lock from a different imap client prevents this client from making changes to the mailbox, I know that in principle, the changes I made could be neglected, so it makes the worries not completely baseless.)
I am not sure what would be the correct behavior of the app during those 2-5(?) seconds,
and I don't know the exact chain of event that is happening during that time.
One thought is that maybe (if you still need to show the messages in the mailbox until they are actually moved out) you can have them still shown as "selected" until they are gone from the mailbox? That would tell me that the action is not completed yet. Just a thought.