diff options
| author | Merov Linden <merov@lindenlab.com> | 2012-11-30 14:12:46 -0800 | 
|---|---|---|
| committer | Merov Linden <merov@lindenlab.com> | 2012-11-30 14:12:46 -0800 | 
| commit | 47a1a0468156153155f5e9b6c720b9b6cb62c263 (patch) | |
| tree | c826ddc99dbb064c4148934681fbaca001cd3b83 | |
| parent | 2843ba11bccf5f5ca447138ad06bc2b557267899 (diff) | |
CHUI-570 : Fixed : Take the typing state when updating the title, also make refresh update less frequent (perf).
| -rw-r--r-- | indra/newview/llfloaterimsession.cpp | 26 | ||||
| -rw-r--r-- | indra/newview/llfloaterimsession.h | 1 | ||||
| -rw-r--r-- | indra/newview/llfloaterimsessiontab.cpp | 2 | 
3 files changed, 12 insertions, 17 deletions
diff --git a/indra/newview/llfloaterimsession.cpp b/indra/newview/llfloaterimsession.cpp index e1dc5b91d0..0162b0ecd0 100644 --- a/indra/newview/llfloaterimsession.cpp +++ b/indra/newview/llfloaterimsession.cpp @@ -66,7 +66,6 @@ LLFloaterIMSession::LLFloaterIMSession(const LLUUID& session_id)    : LLFloaterIMSessionTab(session_id),  	mLastMessageIndex(-1),  	mDialog(IM_NOTHING_SPECIAL), -	mSavedTitle(),  	mTypingStart(),  	mShouldSendTypingState(false),  	mMeTyping(false), @@ -504,9 +503,13 @@ void LLFloaterIMSession::onVoiceChannelStateChanged(  void LLFloaterIMSession::updateSessionName(const std::string& name)  { -	LLFloaterIMSessionTab::updateSessionName(name); -	setTitle(name);	 -	mTypingStart.setArg("[NAME]", name); +	if (!name.empty()) +	{ +		LLFloaterIMSessionTab::updateSessionName(name); +		mTypingStart.setArg("[NAME]", name); +		setTitle (mOtherTyping ? mTypingStart.getString() : name); +	} +	llinfos << "Merov debug : updateSessionName, title = " << name << ", typing title = " << mTypingStart.getString() << llendl;  }  //static @@ -1095,14 +1098,10 @@ BOOL LLFloaterIMSession::inviteToSession(const uuid_vec_t& ids)  void LLFloaterIMSession::addTypingIndicator(const LLIMInfo* im_info)  {  	// We may have lost a "stop-typing" packet, don't add it twice -	if ( im_info && !mOtherTyping ) +	if (im_info && !mOtherTyping)  	{  		mOtherTyping = true; -		// Save and set new title -		mSavedTitle = getTitle(); -		setTitle (mTypingStart); -  		// Update speaker  		LLIMSpeakerMgr* speaker_mgr = LLIMModel::getInstance()->getSpeakerManager(mSessionID);  		if ( speaker_mgr ) @@ -1114,18 +1113,15 @@ void LLFloaterIMSession::addTypingIndicator(const LLIMInfo* im_info)  void LLFloaterIMSession::removeTypingIndicator(const LLIMInfo* im_info)  { -	if ( mOtherTyping ) +	if (mOtherTyping)  	{  		mOtherTyping = false; -		// Revert the title to saved one -		setTitle(mSavedTitle); - -		if ( im_info ) +		if (im_info)  		{  			// Update speaker  			LLIMSpeakerMgr* speaker_mgr = LLIMModel::getInstance()->getSpeakerManager(mSessionID); -			if ( speaker_mgr ) +			if (speaker_mgr)  			{  				speaker_mgr->setSpeakerTyping(im_info->mFromID, FALSE);  			} diff --git a/indra/newview/llfloaterimsession.h b/indra/newview/llfloaterimsession.h index f4ec2d457d..72a320041f 100644 --- a/indra/newview/llfloaterimsession.h +++ b/indra/newview/llfloaterimsession.h @@ -174,7 +174,6 @@ private:  	LLUUID mOtherParticipantUUID;  	bool mPositioned; -	std::string mSavedTitle;  	LLUIString mTypingStart;  	bool mMeTyping;  	bool mOtherTyping; diff --git a/indra/newview/llfloaterimsessiontab.cpp b/indra/newview/llfloaterimsessiontab.cpp index 6e58a66bcd..d43381041b 100644 --- a/indra/newview/llfloaterimsessiontab.cpp +++ b/indra/newview/llfloaterimsessiontab.cpp @@ -43,7 +43,7 @@  #include "lltoolbarview.h"  #include "llfloaterimnearbychat.h" -const F32 REFRESH_INTERVAL = 0.2f; +const F32 REFRESH_INTERVAL = 1.0f;  LLFloaterIMSessionTab::LLFloaterIMSessionTab(const LLSD& session_id)    : LLTransientDockableFloater(NULL, true, session_id)  | 
