Hi all, Because of MEventManager::DispatchPending(); in wxFolderView::ShowFolder(MailFolder *mf), it is possible to trigger an assert about the id of the message to be previewed.
Try this: - Click on the folder tree to open a big folder. - Before opening this first folder is finished, click to open another, smaller folder (with less messages than the previous one). - Then M tries to show, using the headers of the second folder, a message that has uid equal to the one that should be displayed for the *first* folder... The explanation seems to be that the view and the controler get out of sync one with the other: in wxFolderView::SelectInitialMessage(), the GetHeadersCount() call relies on the controler, and returns the number of messages in the *previously* selected folder. And while writing this text, M just crashed trying to thread an empty list, and this suspicious DispatchPending was in the call-stack. So I removed it. Now, when trying to open quickly a big and a small folder, I see that the list of messages displayed is the one of the small folder, but M has not finished threading the big folder, and when it finishes, it tries to display a message with a big uid (from the big folder), while the view is already on the small folder. I know that all those explanations are not really clear, but this is all I can understand for the moment. Can someone try to reproduce this problem (with auto-preview, and local folders)? Thanks. -- Xavier Nodet "They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety." - Benjamin Franklin, 1759.
pgp00000.pgp
Description: PGP signature
