I noticed this when looking at newsgroups initially, but I see it on my IMAP account as well. 1) Have a displayed folder so that you can see some messages unread, and some collapsed threads unread (note the top message of the thread must be read). 2) Right click on folder, and select "Mark folder read". Actual Results: single messages go from bold to not-bold. Threads stay with an underscore and a blue (as opposed to grey) thread symbol. Expected results: single messages and threads all get marked unread. I'm fairly sure this is a regression. Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1b2pre) Gecko/20081119 Lightning/1.0pre Shredder/3.0b1pre
What's going on here is that we're not invalidating the thread pane row for the top level message in the thread. If you mouse over the row, it will display correctly. Should be easy to fix.
Assignee: nobody → bienvenu
Status: NEW → ASSIGNED
Target Milestone: --- → Thunderbird 3.0b2
I'll take this.
Assignee: bienvenu → nick.kreeger
Whiteboard: should be easy → [should be easy][no l10n impact]
Nick, any progress on this?
(In reply to comment #4) > Nick, any progress on this? Haven't had a chance to start on this just yet.
Nick thinks he can get to this tomorrow.
Whiteboard: [should be easy][no l10n impact] → [should be easy][no l10n impact][target frozen]
Proposed patch. This patch works around the issue where nsMsgDBView::GetThreadIndex() determines that the passed in msgIndex is invalid and does a full invalidate rather than by range. This is only the case when a message is hidden under a collapsed thread.
Comment on attachment 361819 [details] [diff] [review] Patch V1 this will work, I think, but it would be good if we would try to invalidate the correct line and have this as a fallback. I'll try the patch later this afternoon...thx for the patch!
Nick, this works for me - does it work for you?
Comment on attachment 361819 [details] [diff] [review] Patch V1 marking obsolete - I think it's better to get the notifications right...
Comment on attachment 361887 [details] [diff] [review] less malformed version >+ PRInt32 threadCount; >+ PRUint32 flags; >+ >+ nsMsgViewIndex threadIndex = (index == nsMsgViewIndex_None) ? >+ ThreadIndexOfMsgHdr(aHdrChanged, index, &threadCount, &flags) >+ : GetThreadIndex(index); ThreadIndexOfMsgHdr is clever enough to do all of this in one line: nsMsgViewIndex threadIndex = ThreadIndexOfMsgHdr(aHdrChanged, index, nsnull, nsnull); * Passing in the index uses that index as the hint to find the thread root * Passing in nsnull means that you don't care what the return values are sr=me with that fixed.
Attachment #361887 - Flags: superreview?(neil) → superreview+
fix checked in tweaked per Neil's suggestion.
Status: ASSIGNED → RESOLVED
Last Resolved: 10 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.