GNOME Bugzilla – Bug 319376
evolution fails to display mail message list
Last modified: 2010-02-16 09:40:51 UTC
Please describe the problem: When switch to the mail component from other components, it fails to display both the preview frame and the message list. The height of the message list nearly becomes 0. Steps to reproduce: 1. Select contact or task conponment except mail conponent. 2. Quit evolution 3. Restart evolution, Now it should be on the component last used. 4. Switch to mail component Actual results: The message list can't nearly be seen. The preview window is so lary that it is full of the folder view window on the right. Expected results: The message list can be seen normally. Does this happen every time? Yes. Other information: You have to use the most recent version of Evolution. For older version on linux, it will not happen. But on solaris version, it will happen on both new and old. It seems that the initialzition of EMFolder is incorrect. The message list is not set correct size. In older version, em_folder_show_preview will always invoked no matter whether the preview frame is active or not.
Earlier there is a modification that changes the flag declartion "preview_active" from one bit of int to one bit gunit. After this modification, the folder view will not redrawn every time. So we can see this bug. But you can see it's not the earlier modification to cause the bug. In fact, the bug is caused by other codes.
Jeff: Can you revert the patch that makes this bug visible? Once we fix this bug which was hidden for so long, we can include your patch once again.
OK. But even without my patch, the message list can't be seen on solaris. That is beacuse: in file em-folder-view.h old declaration: int preview_active:1 new declaration in my patch: guint preview_active:1 On solaris, it doesn't have any influence no matter it is 'int' or 'guint'. If preview_active it TRUE, it is '1' in fact. but on linux, for guint, it is '-1'. So the bug can appear on solaris but not on linux.
Created attachment 94034 [details] [review] Don't check preview_active
jeff, what do you think this patch does? Im not able to get it.
I can't provide better solution on Solaris yet. Just put here and I hope someone can provide another patch for this.
jeff, what is the implication of this comment on non-solaris build?
Please see following code: if ((emfb->view.preview_active ^ state) == 0 || emfb->view.list == NULL) { if (state && emfb->priv->scope_restricted && emfb->view.list->cursor_uid && *(emfb->view.list->cursor_uid)) { e_search_bar_scope_enable ((ESearchBar *)emfb->search, E_FILTERBAR_CURRENT_MESSAGE_ID, TRUE); emfb->priv->scope_restricted = FALSE; } return; } currently preview_active is defined as guint. On Linux, when this flag should be true, preview_active=-1 (it should be 1). This will cause the condition can never be met and the code under that "if" section become trash because it will never be executed. On Solaris, preview_active is 1 (this is correct), the sentences under the "if" can be executed .
OK, if the condition gets executed, it sets the preview. but how does it help this bug? Sorry, Im not getting anything here.
On solaris, when the condition is met it will not recalculate the size of preview window . This will cause the window to become very large. So the patch removes the "if" section.
Jeff, to over come all these, things, I think you can make that a boolean or so and rewrite it. I think that commenting would have some side effects on non-solaris.
Panel resize issues have been addressed in kill-bonobo branch which is merged in 2.29.x
Jeff, can you try with 2.29.3 or 2.29.4 and report back, please?
I assume this issue is OBSOLETE by now. If not, please reopen.