diff options
Diffstat (limited to 'indra/newview')
| -rwxr-xr-x | indra/newview/llconversationview.cpp | 14 | ||||
| -rw-r--r-- | indra/newview/llspeakers.cpp | 8 | ||||
| -rw-r--r-- | indra/newview/llspeakers.h | 3 | 
3 files changed, 24 insertions, 1 deletions
| diff --git a/indra/newview/llconversationview.cpp b/indra/newview/llconversationview.cpp index 53392ac372..d1649a93b1 100755 --- a/indra/newview/llconversationview.cpp +++ b/indra/newview/llconversationview.cpp @@ -409,6 +409,7 @@ BOOL LLConversationViewParticipant::postBuild()  void LLConversationViewParticipant::draw()  {      static LLUIColor sFgColor = LLUIColorTable::instance().getColor("MenuItemEnabledColor", DEFAULT_WHITE); +	static LLUIColor sFgDisabledColor = LLUIColorTable::instance().getColor("MenuItemDisabledColor", DEFAULT_WHITE);      static LLUIColor sHighlightFgColor = LLUIColorTable::instance().getColor("MenuItemHighlightFgColor", DEFAULT_WHITE);      static LLUIColor sHighlightBgColor = LLUIColorTable::instance().getColor("MenuItemHighlightBgColor", DEFAULT_WHITE);      static LLUIColor sFocusOutlineColor = LLUIColorTable::instance().getColor("InventoryFocusOutlineColor", DEFAULT_WHITE); @@ -421,7 +422,18 @@ void LLConversationViewParticipant::draw()      F32 y = (F32)getRect().getHeight() - font->getLineHeight() - (F32)mTextPad;      F32 text_left = (F32)getLabelXPos(); -    LLColor4 color = mIsSelected ? sHighlightFgColor : sFgColor; +	 +	LLColor4 color; +	LLLocalSpeakerMgr *speakerMgr = LLLocalSpeakerMgr::getInstance(); + +	if (speakerMgr && speakerMgr->isSpeakerToBeRemoved(mUUID)) +	{ +		color = sFgDisabledColor; +	} +	else +	{ +		color = mIsSelected ? sHighlightFgColor : sFgColor; +	}      drawHighlight(show_context, mIsSelected, sHighlightBgColor, sFocusOutlineColor, sMouseOverColor);      drawLabel(font, text_left, y, color, right_x); diff --git a/indra/newview/llspeakers.cpp b/indra/newview/llspeakers.cpp index 5036334bdd..88f29d7587 100644 --- a/indra/newview/llspeakers.cpp +++ b/indra/newview/llspeakers.cpp @@ -254,6 +254,10 @@ bool LLSpeakersDelayActionsStorage::onTimerActionCallback(const LLUUID& speaker_  	return true;  } +bool LLSpeakersDelayActionsStorage::isTimerStarted(const LLUUID& speaker_id) +{ +	return (mActionTimersMap.size() > 0) && (mActionTimersMap.find(speaker_id) != mActionTimersMap.end()); +}  //  // ModerationResponder @@ -603,6 +607,10 @@ const LLUUID LLSpeakerMgr::getSessionID()  	return mVoiceChannel->getSessionID();   } +bool LLSpeakerMgr::isSpeakerToBeRemoved(const LLUUID& speaker_id) +{ +	return mSpeakerDelayRemover && mSpeakerDelayRemover->isTimerStarted(speaker_id); +}  void LLSpeakerMgr::setSpeakerTyping(const LLUUID& speaker_id, BOOL typing)  { diff --git a/indra/newview/llspeakers.h b/indra/newview/llspeakers.h index 8ab08661d3..7d518fe07b 100644 --- a/indra/newview/llspeakers.h +++ b/indra/newview/llspeakers.h @@ -193,6 +193,8 @@ public:  	void unsetActionTimer(const LLUUID& speaker_id);  	void removeAllTimers(); + +	bool isTimerStarted(const LLUUID& speaker_id);  private:  	/**  	 * Callback of the each instance of LLSpeakerActionTimer. @@ -237,6 +239,7 @@ public:  	void getSpeakerList(speaker_list_t* speaker_list, BOOL include_text);  	LLVoiceChannel* getVoiceChannel() { return mVoiceChannel; }  	const LLUUID getSessionID(); +	bool isSpeakerToBeRemoved(const LLUUID& speaker_id);  	/**  	 * Removes avaline speaker. | 
