diff options
Diffstat (limited to 'indra')
| -rwxr-xr-x | indra/newview/llconversationview.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llfloaterimcontainer.cpp | 12 | ||||
| -rw-r--r-- | indra/newview/llfloaterimcontainer.h | 1 | ||||
| -rw-r--r-- | indra/newview/llimview.cpp | 7 | 
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  | 
