summaryrefslogtreecommitdiff
path: root/indra/newview/llconversationview.cpp
diff options
context:
space:
mode:
authorMerov Linden <merov@lindenlab.com>2012-12-04 14:52:19 -0800
committerMerov Linden <merov@lindenlab.com>2012-12-04 14:52:19 -0800
commit90f9f5dbad8a0e6dc20b3f7fc58527e572a6b3f7 (patch)
tree2b6d67485b851d3c9a7adcad4709fed64b11c428 /indra/newview/llconversationview.cpp
parentb43c8afc36a11c34fa76443be85430cac6c72c42 (diff)
parent3f6f374c2566c85e1a9480da674bfc2172dd9162 (diff)
Pull merge from richard/viewer-chui
Diffstat (limited to 'indra/newview/llconversationview.cpp')
-rwxr-xr-xindra/newview/llconversationview.cpp21
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;
}