summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorMerov Linden <merov@lindenlab.com>2012-11-30 14:12:46 -0800
committerMerov Linden <merov@lindenlab.com>2012-11-30 14:12:46 -0800
commit47a1a0468156153155f5e9b6c720b9b6cb62c263 (patch)
treec826ddc99dbb064c4148934681fbaca001cd3b83 /indra
parent2843ba11bccf5f5ca447138ad06bc2b557267899 (diff)
CHUI-570 : Fixed : Take the typing state when updating the title, also make refresh update less frequent (perf).
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llfloaterimsession.cpp26
-rw-r--r--indra/newview/llfloaterimsession.h1
-rw-r--r--indra/newview/llfloaterimsessiontab.cpp2
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)