diff options
author | Merov Linden <merov@lindenlab.com> | 2012-12-04 14:52:19 -0800 |
---|---|---|
committer | Merov Linden <merov@lindenlab.com> | 2012-12-04 14:52:19 -0800 |
commit | 90f9f5dbad8a0e6dc20b3f7fc58527e572a6b3f7 (patch) | |
tree | 2b6d67485b851d3c9a7adcad4709fed64b11c428 /indra/newview/llconversationview.cpp | |
parent | b43c8afc36a11c34fa76443be85430cac6c72c42 (diff) | |
parent | 3f6f374c2566c85e1a9480da674bfc2172dd9162 (diff) |
Pull merge from richard/viewer-chui
Diffstat (limited to 'indra/newview/llconversationview.cpp')
-rwxr-xr-x | indra/newview/llconversationview.cpp | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/indra/newview/llconversationview.cpp b/indra/newview/llconversationview.cpp index 1b1d61e6d6..b964cee09f 100755 --- a/indra/newview/llconversationview.cpp +++ b/indra/newview/llconversationview.cpp @@ -95,7 +95,7 @@ LLConversationViewSession::~LLConversationViewSession() LLVoiceClient::getInstance()->removeObserver(mVoiceClientObserver); } - delete mFlashTimer; + mFlashTimer->unset(); } bool LLConversationViewSession::isHighlightAllowed() @@ -218,9 +218,15 @@ BOOL LLConversationViewSession::handleMouseDown( S32 x, S32 y, MASK mask ) { LLConversationItem* item = dynamic_cast<LLConversationItem *>(getViewModelItem()); LLUUID session_id = item? item->getUUID() : LLUUID(); + //Will try to select a child node and then itself (if a child was not selected) BOOL result = LLFolderViewFolder::handleMouseDown(x, y, mask); - (LLFloaterReg::getTypedInstance<LLFloaterIMContainer>("im_container"))-> - selectConversationPair(session_id, false); + + //This node (conversation) was selected and a child (participant) was not + if(result && getRoot()->getCurSelectedItem() == this) + { + (LLFloaterReg::getTypedInstance<LLFloaterIMContainer>("im_container"))-> + selectConversationPair(session_id, false); + } return result; } @@ -448,6 +454,7 @@ void LLConversationViewParticipant::draw() drawHighlight(show_context, mIsSelected, sHighlightBgColor, sFocusOutlineColor, sMouseOverColor); drawLabel(font, text_left, y, color, right_x); + refresh(); LLView::draw(); } @@ -548,8 +555,12 @@ BOOL LLConversationViewParticipant::handleMouseDown( S32 x, S32 y, MASK mask ) } LLUUID session_id = item? item->getUUID() : LLUUID(); BOOL result = LLFolderViewItem::handleMouseDown(x, y, mask); - (LLFloaterReg::getTypedInstance<LLFloaterIMContainer>("im_container"))-> - selectConversationPair(session_id, false); + + if(result) + { + (LLFloaterReg::getTypedInstance<LLFloaterIMContainer>("im_container"))-> + selectConversationPair(session_id, false); + } return result; } |