diff options
author | Igor Borovkov <iborovkov@productengine.com> | 2009-12-14 16:43:34 +0200 |
---|---|---|
committer | Igor Borovkov <iborovkov@productengine.com> | 2009-12-14 16:43:34 +0200 |
commit | 222dfaef0aa16ced2fd6285763467e5bfa8ed574 (patch) | |
tree | e2a86b5a1cff2a251ce35bf4d12b4c1d140ec1f4 /indra/newview | |
parent | f446e2b94d05315a09e3068b258a606986ec8872 (diff) |
fixed EXT-3372 [BSI] Typing notification in IM displayed although Resident isn't typing
Added explicit resetting of IM floater's title as it was done in 1.23
--HG--
branch : product-engine
Diffstat (limited to 'indra/newview')
-rw-r--r-- | indra/newview/llimfloater.cpp | 17 | ||||
-rw-r--r-- | indra/newview/llimfloater.h | 3 | ||||
-rw-r--r-- | indra/newview/llimview.cpp | 2 |
3 files changed, 22 insertions, 0 deletions
diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp index 47a168e354..22d5b47ae4 100644 --- a/indra/newview/llimfloater.cpp +++ b/indra/newview/llimfloater.cpp @@ -947,3 +947,20 @@ void LLIMFloater::initIMFloater() // init chat window type before user changed it in preferences isChatMultiTab(); } + +//static +void LLIMFloater::sRemoveTypingIndicator(const LLSD& data) +{ + LLUUID session_id = data["session_id"]; + if (session_id.isNull()) return; + + LLUUID from_id = data["from_id"]; + if (gAgentID == from_id || LLUUID::null == from_id) return; + + LLIMFloater* floater = LLIMFloater::findInstance(session_id); + if (!floater) return; + + if (IM_NOTHING_SPECIAL != floater->mDialog) return; + + floater->removeTypingIndicator(); +} diff --git a/indra/newview/llimfloater.h b/indra/newview/llimfloater.h index f90bc35c34..3184fd8e35 100644 --- a/indra/newview/llimfloater.h +++ b/indra/newview/llimfloater.h @@ -109,6 +109,9 @@ public: static void initIMFloater(); + //used as a callback on receiving new IM message + static void sRemoveTypingIndicator(const LLSD& data); + private: // process focus events to set a currently active session /* virtual */ void onFocusLost(); diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index bc35260983..b50d4674f7 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -1793,6 +1793,8 @@ LLIMMgr::LLIMMgr() : { mPendingInvitations = LLSD::emptyMap(); mPendingAgentListUpdates = LLSD::emptyMap(); + + LLIMModel::getInstance()->addNewMsgCallback(boost::bind(&LLIMFloater::sRemoveTypingIndicator, _1)); } // Add a message to a session. |