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.


Attachment: pgp00000.pgp
Description: PGP signature

Reply via email to