diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/llchiclet.cpp | 6 | ||||
| -rw-r--r-- | indra/newview/lloutputmonitorctrl.cpp | 6 | 
2 files changed, 11 insertions, 1 deletions
diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp index f646bcccb5..18bd7b725f 100644 --- a/indra/newview/llchiclet.cpp +++ b/indra/newview/llchiclet.cpp @@ -545,6 +545,7 @@ void LLIMChiclet::toggleSpeakerControl()  	}  	setRequiredWidth(); +	mSpeakerCtrl->setSpeakerId(LLUUID::null);  	mSpeakerCtrl->setVisible(getShowSpeaker());  } @@ -954,7 +955,10 @@ LLIMGroupChiclet::~LLIMGroupChiclet()  void LLIMGroupChiclet::draw()  { -	switchToCurrentSpeaker(); +	if(getShowSpeaker()) +	{ +		switchToCurrentSpeaker(); +	}  	LLIMChiclet::draw();  } diff --git a/indra/newview/lloutputmonitorctrl.cpp b/indra/newview/lloutputmonitorctrl.cpp index 388fdeea7a..9857e37bc3 100644 --- a/indra/newview/lloutputmonitorctrl.cpp +++ b/indra/newview/lloutputmonitorctrl.cpp @@ -249,6 +249,11 @@ void LLOutputMonitorCtrl::draw()  void LLOutputMonitorCtrl::setSpeakerId(const LLUUID& speaker_id)  { +	if (speaker_id.isNull() && mSpeakerId.notNull()) +	{ +		LLSpeakingIndicatorManager::unregisterSpeakingIndicator(mSpeakerId, this); +	} +  	if (speaker_id.isNull() || speaker_id == mSpeakerId) return;  	if (mSpeakerId.notNull()) @@ -256,6 +261,7 @@ void LLOutputMonitorCtrl::setSpeakerId(const LLUUID& speaker_id)  		// Unregister previous registration to avoid crash. EXT-4782.  		LLSpeakingIndicatorManager::unregisterSpeakingIndicator(mSpeakerId, this);  	} +  	mSpeakerId = speaker_id;  	LLSpeakingIndicatorManager::registerSpeakingIndicator(mSpeakerId, this);  | 
