summaryrefslogtreecommitdiff
path: root/indra/newview/llimview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llimview.cpp')
-rw-r--r--indra/newview/llimview.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index 0d2b1f06b5..4b82596f37 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -2582,7 +2582,9 @@ LLUUID LLIMMgr::addSession(
{
LLDynamicArray<LLUUID> ids;
ids.put(other_participant_id);
- return addSession(name, dialog, other_participant_id, ids, voice);
+ LLUUID session_id = addSession(name, dialog, other_participant_id, ids, voice);
+ notifyObserverSessionVoiceOrIMStarted(session_id);
+ return session_id;
}
// Adds a session using the given session_id. If the session already exists
@@ -2609,7 +2611,8 @@ LLUUID LLIMMgr::addSession(
if (floater_id.notNull())
{
- LLIMFloater* im_floater = LLIMFloater::findInstance(floater_id);
+ LLIMFloater* im_floater = LLIMFloater::findInstance(session_id);
+
if (im_floater && im_floater->getStartConferenceInSameFloater())
{
// The IM floater should be initialized with a new session_id
@@ -2936,6 +2939,14 @@ void LLIMMgr::notifyObserverSessionAdded(const LLUUID& session_id, const std::st
}
}
+void LLIMMgr::notifyObserverSessionVoiceOrIMStarted(const LLUUID& session_id)
+{
+ for (session_observers_list_t::iterator it = mSessionObservers.begin(); it != mSessionObservers.end(); it++)
+ {
+ (*it)->sessionVoiceOrIMStarted(session_id);
+ }
+}
+
void LLIMMgr::notifyObserverSessionRemoved(const LLUUID& session_id)
{
for (session_observers_list_t::iterator it = mSessionObservers.begin(); it != mSessionObservers.end(); it++)