From 808d12572df101d4f9516024eadbd56bd28526b0 Mon Sep 17 00:00:00 2001 From: "bienvenu%netscape.com" Date: Wed, 2 May 2001 14:29:10 +0000 Subject: [PATCH] fix twisty showing up on new messages in threads with unread view r=naving, sr=sspitzer 74237 git-svn-id: svn://10.0.0.236/trunk@93643 18797224-902f-48f8-a5cc-f745e15eee43 --- .../mailnews/base/src/nsMsgSpecialViews.cpp | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/mozilla/mailnews/base/src/nsMsgSpecialViews.cpp b/mozilla/mailnews/base/src/nsMsgSpecialViews.cpp index 2bcdccef6ef..5c798314839 100644 --- a/mozilla/mailnews/base/src/nsMsgSpecialViews.cpp +++ b/mozilla/mailnews/base/src/nsMsgSpecialViews.cpp @@ -66,13 +66,19 @@ nsresult nsMsgThreadsWithUnreadDBView::AddMsgToThreadNotInView(nsIMsgThread *thr PRUint32 newFlags; msgHdr->GetFlags(&msgFlags); GetFirstMessageHdrToDisplayInThread(threadHdr, getter_AddRefs(parentHdr)); - if (parentHdr && (ensureListed || !(msgFlags & MSG_FLAG_READ))) - { - parentHdr->OrFlags(MSG_VIEW_FLAG_HASCHILDREN | MSG_VIEW_FLAG_ISTHREAD, &newFlags); - if (!(m_viewFlags & nsMsgViewFlagsType::kUnreadOnly)) - parentHdr->OrFlags(MSG_FLAG_ELIDED, &newFlags); - rv = AddHdr(parentHdr); - } + if (parentHdr && (ensureListed || !(msgFlags & MSG_FLAG_READ))) + { + PRUint32 orFlags = MSG_VIEW_FLAG_ISTHREAD; + PRUint32 numChildren; + threadHdr->GetNumChildren(&numChildren); + if (numChildren > 1) + orFlags |= MSG_VIEW_FLAG_HASCHILDREN; + + parentHdr->OrFlags(orFlags, &newFlags); + if (!(m_viewFlags & nsMsgViewFlagsType::kUnreadOnly)) + parentHdr->OrFlags(MSG_FLAG_ELIDED, &newFlags); + rv = AddHdr(parentHdr); + } return rv; } @@ -111,7 +117,12 @@ nsresult nsMsgWatchedThreadsWithUnreadDBView::AddMsgToThreadNotInView(nsIMsgThre GetFirstMessageHdrToDisplayInThread(threadHdr, getter_AddRefs(parentHdr)); if (parentHdr && (ensureListed || !(msgFlags & MSG_FLAG_READ))) { - parentHdr->OrFlags(MSG_FLAG_ELIDED | MSG_VIEW_FLAG_HASCHILDREN | MSG_VIEW_FLAG_ISTHREAD, &newFlags); + PRUint32 orFlags = MSG_VIEW_FLAG_ISTHREAD | MSG_FLAG_ELIDED; + PRUint32 numChildren; + threadHdr->GetNumChildren(&numChildren); + if (numChildren > 1) + orFlags |= MSG_VIEW_FLAG_HASCHILDREN; + parentHdr->OrFlags(orFlags, &newFlags); rv = AddHdr(parentHdr); } }