summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xindra/newview/llconversationview.cpp2
-rw-r--r--indra/newview/llfloaterimcontainer.cpp12
-rw-r--r--indra/newview/llfloaterimcontainer.h1
-rw-r--r--indra/newview/llimview.cpp7
4 files changed, 20 insertions, 2 deletions
diff --git a/indra/newview/llconversationview.cpp b/indra/newview/llconversationview.cpp
index 295dd2ae6d..53392ac372 100755
--- a/indra/newview/llconversationview.cpp
+++ b/indra/newview/llconversationview.cpp
@@ -240,7 +240,7 @@ void LLConversationViewSession::toggleOpen()
{
getParentFolder()->setSelection(this, true);
}
-
+ mContainer->reSelectConversation();
}
}
diff --git a/indra/newview/llfloaterimcontainer.cpp b/indra/newview/llfloaterimcontainer.cpp
index 2707e3dcbb..962e9f4df6 100644
--- a/indra/newview/llfloaterimcontainer.cpp
+++ b/indra/newview/llfloaterimcontainer.cpp
@@ -334,7 +334,7 @@ void LLFloaterIMContainer::onExpandCollapseButtonClicked()
{
collapseConversationsPane(!mConversationsPane->isCollapsed());
}
- selectConversation(mSelectedSession);
+ reSelectConversation();
}
LLFloaterIMContainer* LLFloaterIMContainer::findInstance()
@@ -1574,4 +1574,14 @@ void LLFloaterIMContainer::onNearbyChatClosed()
closeFloater();
}
+void LLFloaterIMContainer::reSelectConversation()
+{
+ LLFloaterIMSessionTab* session_floater = LLFloaterIMSessionTab::getConversation(mSelectedSession);
+ if (session_floater->getHost())
+ {
+ selectFloater(session_floater);
+ }
+
+}
+
// EOF
diff --git a/indra/newview/llfloaterimcontainer.h b/indra/newview/llfloaterimcontainer.h
index e60576a50d..ad1f0039e9 100644
--- a/indra/newview/llfloaterimcontainer.h
+++ b/indra/newview/llfloaterimcontainer.h
@@ -163,6 +163,7 @@ public:
LLConversationItem* addConversationListItem(const LLUUID& uuid, bool isWidgetSelected = false);
void setTimeNow(const LLUUID& session_id, const LLUUID& participant_id);
void setNearbyDistances();
+ void reSelectConversation();
private:
LLConversationViewSession* createConversationItemWidget(LLConversationItem* item);
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index d57ffb9a11..3b217ef482 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -2444,14 +2444,21 @@ void LLIMMgr::addMessage(
//*NOTE session_name is empty in case of incoming P2P sessions
std::string fixed_session_name = from;
+ bool name_is_setted = false;
if(!session_name.empty() && session_name.size()>1)
{
fixed_session_name = session_name;
+ name_is_setted = true;
}
bool new_session = !hasSession(new_session_id);
if (new_session)
{
+ LLAvatarName av_name;
+ if (LLAvatarNameCache::get(other_participant_id, &av_name) && !name_is_setted)
+ {
+ fixed_session_name = (av_name.mDisplayName.empty() ? av_name.mUsername : av_name.mDisplayName);
+ }
LLIMModel::getInstance()->newSession(new_session_id, fixed_session_name, dialog, other_participant_id, false, is_offline_msg);
// When we get a new IM, and if you are a god, display a bit