diff --git a/indra/newview/fsfloaterimcontainer.cpp b/indra/newview/fsfloaterimcontainer.cpp index 01e9a854d0..db7ef1849e 100644 --- a/indra/newview/fsfloaterimcontainer.cpp +++ b/indra/newview/fsfloaterimcontainer.cpp @@ -471,4 +471,16 @@ void FSFloaterIMContainer::checkFlashing() gToolBarView->flashCommand(LLCommandId("chat"), false); } } + +void FSFloaterIMContainer::sessionIDUpdated(const LLUUID& old_session_id, const LLUUID& new_session_id) +{ + avatarID_panel_map_t::iterator found = mSessions.find(old_session_id); + if (found != mSessions.end()) + { + LLFloater* floaterp = found->second; + mSessions.erase(found); + mSessions[new_session_id] = floaterp; + } +} + // EOF diff --git a/indra/newview/fsfloaterimcontainer.h b/indra/newview/fsfloaterimcontainer.h index 9d6a413dd7..eef05dd552 100644 --- a/indra/newview/fsfloaterimcontainer.h +++ b/indra/newview/fsfloaterimcontainer.h @@ -72,7 +72,7 @@ public: virtual void sessionActivated(const LLUUID& session_id, const std::string& name, const LLUUID& other_participant_id) {}; virtual void sessionVoiceOrIMStarted(const LLUUID& session_id) {}; virtual void sessionRemoved(const LLUUID& session_id); - virtual void sessionIDUpdated(const LLUUID& old_session_id, const LLUUID& new_session_id) {}; + virtual void sessionIDUpdated(const LLUUID& old_session_id, const LLUUID& new_session_id); static void reloadEmptyFloaters(); void initTabs();