diff options
author | Mnikolenko Productengine <mnikolenko@productengine.com> | 2020-07-01 16:55:57 +0300 |
---|---|---|
committer | Mnikolenko Productengine <mnikolenko@productengine.com> | 2020-07-01 16:55:57 +0300 |
commit | 562c2bd1ec4fe25f4a686f1b7e59ddd78fd90d41 (patch) | |
tree | 9f4bd142b3d3f978e3f30590f28591ebaf4b9982 /indra/newview | |
parent | 68450e44feaed219741add9c4f86204719027f99 (diff) |
SL-13525 FIXED If a blocked user is first to chat in a group IM session, that group IM will not open even if unblocked people chat.
Diffstat (limited to 'indra/newview')
-rw-r--r-- | indra/newview/llimview.cpp | 9 | ||||
-rw-r--r-- | indra/newview/llimview.h | 2 |
2 files changed, 7 insertions, 4 deletions
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index d5142a4496..ee3cb338e7 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -2734,7 +2734,7 @@ void LLIMMgr::addMessage( if (LLMuteList::getInstance()->isMuted(other_participant_id, LLMute::flagTextChat) && !from_linden) { LL_WARNS() << "Leaving IM session from initiating muted resident " << from << LL_ENDL; - if (!gIMMgr->leaveSession(new_session_id)) + if (!gIMMgr->leaveSession(new_session_id, !session->isGroupSessionType())) { LL_INFOS() << "Session " << new_session_id << " does not exist." << LL_ENDL; } @@ -2964,12 +2964,15 @@ LLUUID LLIMMgr::addSession( return session_id; } -bool LLIMMgr::leaveSession(const LLUUID& session_id) +bool LLIMMgr::leaveSession(const LLUUID& session_id, bool send_leave_msg) { LLIMModel::LLIMSession* im_session = LLIMModel::getInstance()->findIMSession(session_id); if (!im_session) return false; - LLIMModel::getInstance()->sendLeaveSession(session_id, im_session->mOtherParticipantID); + if (send_leave_msg) + { + LLIMModel::getInstance()->sendLeaveSession(session_id, im_session->mOtherParticipantID); + } gIMMgr->removeSession(session_id); return true; } diff --git a/indra/newview/llimview.h b/indra/newview/llimview.h index 79c831ebb6..3cd808c75c 100644 --- a/indra/newview/llimview.h +++ b/indra/newview/llimview.h @@ -380,7 +380,7 @@ public: * to the server and removes all associated session data * @return false if the session with specified id was not exist */ - bool leaveSession(const LLUUID& session_id); + bool leaveSession(const LLUUID& session_id, bool send_leave_msg = true); void inviteToSession( const LLUUID& session_id, |