summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/llfloaterchat.cpp6
-rw-r--r--indra/newview/llimview.cpp10
-rw-r--r--indra/newview/llimview.h5
3 files changed, 15 insertions, 6 deletions
diff --git a/indra/newview/llfloaterchat.cpp b/indra/newview/llfloaterchat.cpp
index b9e0f928f1..8f91424f59 100644
--- a/indra/newview/llfloaterchat.cpp
+++ b/indra/newview/llfloaterchat.cpp
@@ -311,8 +311,10 @@ void LLFloaterChat::addChat(const LLChat& chat, BOOL from_instant_message, BOOL
triggerAlerts(chat.mText);
// Add the sender to the list of people with which we've recently interacted.
- if(chat.mSourceType == CHAT_SOURCE_AGENT && chat.mFromID.notNull())
- LLRecentPeople::instance().add(chat.mFromID);
+ // this is not the best place to add _all_ messages to recent list
+ // comment this for now, may remove later on code cleanup
+ //if(chat.mSourceType == CHAT_SOURCE_AGENT && chat.mFromID.notNull())
+ // LLRecentPeople::instance().add(chat.mFromID);
bool add_chat = true;
bool log_chat = true;
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index daabf1f717..87b2793f9f 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -382,10 +382,6 @@ void LLIMModel::LLIMSession::addMessage(const std::string& from, const LLUUID& f
mSpeakers->speakerChatted(from_id);
mSpeakers->setSpeakerTyping(from_id, FALSE);
}
-
- if( mSessionType == P2P_SESSION ||
- mSessionType == ADHOC_SESSION)
- LLRecentPeople::instance().add(from_id);
}
void LLIMModel::LLIMSession::addMessagesFromHistory(const std::list<LLSD>& history)
@@ -684,6 +680,12 @@ bool LLIMModel::addMessage(const LLUUID& session_id, const std::string& from, co
LLIMSession* session = addMessageSilently(session_id, from, from_id, utf8_text, log2file);
if (!session) return false;
+ //good place to add some1 to recent list
+ //other places may be called from message history.
+ if( !from_id.isNull() &&
+ ( session->isP2PSessionType() || session->isAdHocSessionType() ) )
+ LLRecentPeople::instance().add(from_id);
+
// notify listeners
LLSD arg;
arg["session_id"] = session_id;
diff --git a/indra/newview/llimview.h b/indra/newview/llimview.h
index 20d8e28392..e72bda6c2b 100644
--- a/indra/newview/llimview.h
+++ b/indra/newview/llimview.h
@@ -78,6 +78,11 @@ public:
bool isP2P();
bool isOtherParticipantAvaline();
+ bool isP2PSessionType() const { return mSessionType == P2P_SESSION;}
+ bool isAdHocSessionType() const { return mSessionType == ADHOC_SESSION;}
+ bool isGroupSessionType() const { return mSessionType == GROUP_SESSION;}
+ bool isAvalineSessionType() const { return mSessionType == AVALINE_SESSION;}
+
LLUUID mSessionID;
std::string mName;
EInstantMessage mType;