From ea64706e796e90d0cd775c2113c949c2b56c898c Mon Sep 17 00:00:00 2001 From: Mike Antipov Date: Wed, 21 Apr 2010 10:24:56 +0300 Subject: Fixed normal bug EXT-6909 ('Mute/unmute' moderation options remain enaibled after moderator left group call) Reason: session's Speaker Manager was not updated when voice call ended. Speakers had incorrect voice related state. Fix: update speakers' state when voice call is finished. Also VCP now uses LLIMMgr::endCall to perform "Leave Call" action. Reviewed by Vadim Savchuk at https://codereview.productengine.com/secondlife/r/276/ --HG-- branch : product-engine --- indra/newview/llcallfloater.cpp | 2 +- indra/newview/llimview.cpp | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'indra/newview') diff --git a/indra/newview/llcallfloater.cpp b/indra/newview/llcallfloater.cpp index d15c5f9bf4..5a96613870 100644 --- a/indra/newview/llcallfloater.cpp +++ b/indra/newview/llcallfloater.cpp @@ -228,7 +228,7 @@ void LLCallFloater::leaveCall() LLVoiceChannel* voice_channel = LLVoiceChannel::getCurrentVoiceChannel(); if (voice_channel) { - voice_channel->deactivate(); + gIMMgr->endCall(voice_channel->getSessionID()); } } diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index 4357c7d426..909878207c 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -2744,6 +2744,12 @@ bool LLIMMgr::endCall(const LLUUID& session_id) if (!voice_channel) return false; voice_channel->deactivate(); + LLIMModel::LLIMSession* im_session = LLIMModel::getInstance()->findIMSession(session_id); + if (im_session) + { + // need to update speakers' state + im_session->mSpeakers->update(FALSE); + } return true; } -- cgit v1.2.3