diff options
| author | Vadim Savchuk <vsavchuk@productengine.com> | 2009-10-28 16:53:12 +0200 |
|---|---|---|
| committer | Vadim Savchuk <vsavchuk@productengine.com> | 2009-10-28 16:53:12 +0200 |
| commit | 66ff81c8c16996773f9d66c5861e14df086a0e89 (patch) | |
| tree | 4413093fb5e209bc7a2e21c0d74e4a8cd6b9c2f0 /indra/newview/llimview.cpp | |
| parent | 2663bad36b4b02003b4b4c5989c2571c71504cd7 (diff) | |
| parent | a999e50a8ebb3ab641490294d67dbbd6eb0c8898 (diff) | |
merge
--HG--
branch : product-engine
Diffstat (limited to 'indra/newview/llimview.cpp')
| -rw-r--r-- | indra/newview/llimview.cpp | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index 2e5e23c845..b429ae8cf4 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -146,7 +146,9 @@ LLIMModel::LLIMSession::LLIMSession(const LLUUID& session_id, const std::string& mVoiceChannel(NULL), mSpeakers(NULL), mSessionInitialized(false), - mCallBackEnabled(true) + mCallBackEnabled(true), + mTextIMPossible(true), + mProfileButtonEnabled(true) { if (IM_NOTHING_SPECIAL == type || IM_SESSION_P2P_INVITE == type) { @@ -174,6 +176,8 @@ LLIMModel::LLIMSession::LLIMSession(const LLUUID& session_id, const std::string& if (IM_NOTHING_SPECIAL == type) { mCallBackEnabled = LLVoiceClient::getInstance()->isSessionCallBackPossible(mSessionID); + mTextIMPossible = LLVoiceClient::getInstance()->isSessionTextIMPossible(mSessionID); + mProfileButtonEnabled = LLVoiceClient::getInstance()->isParticipantAvatar(mSessionID); } } @@ -2120,6 +2124,15 @@ public: } } + LLIMFloater* im_floater = LLIMFloater::findInstance(session_id); + if ( im_floater ) + { + if ( body.has("session_info") ) + { + im_floater->processSessionUpdate(body["session_info"]); + } + } + gIMMgr->clearPendingAgentListUpdates(session_id); } else @@ -2217,11 +2230,17 @@ public: const LLSD& context, const LLSD& input) const { - LLFloaterIMPanel* floaterp = gIMMgr->findFloaterBySession(input["body"]["session_id"].asUUID()); + LLUUID session_id = input["body"]["session_id"].asUUID(); + LLFloaterIMPanel* floaterp = gIMMgr->findFloaterBySession(session_id); if (floaterp) { floaterp->processSessionUpdate(input["body"]["info"]); } + LLIMFloater* im_floater = LLIMFloater::findInstance(session_id); + if ( im_floater ) + { + im_floater->processSessionUpdate(input["body"]["info"]); + } } }; |
