diff options
| author | MaximB ProductEngine <mberezhnoy@productengine.com> | 2012-11-15 10:38:21 +0200 | 
|---|---|---|
| committer | MaximB ProductEngine <mberezhnoy@productengine.com> | 2012-11-15 10:38:21 +0200 | 
| commit | dbc37f6ca74dba6c6d5194e0397d5cfe6f570c1d (patch) | |
| tree | 805d12e4dc646f8bce329dc9913e1239f334b438 /indra | |
| parent | d75824d520ba1965e48196f8b230ded0f15c5841 (diff) | |
CHUI-397 (Delay in removing names from participant list in nearby chat)
CHUI-440 (Nearby chat participant list does not clear after teleport when conversation floater is closed/minimized)
fixed
Diffstat (limited to 'indra')
| -rwxr-xr-x | indra/llui/llfolderviewitem.h | 1 | ||||
| -rwxr-xr-x | indra/newview/llconversationview.cpp | 14 | ||||
| -rw-r--r-- | indra/newview/llspeakers.cpp | 8 | ||||
| -rw-r--r-- | indra/newview/llspeakers.h | 3 | 
4 files changed, 25 insertions, 1 deletions
| diff --git a/indra/llui/llfolderviewitem.h b/indra/llui/llfolderviewitem.h index b157aabdcf..152ca242e1 100755 --- a/indra/llui/llfolderviewitem.h +++ b/indra/llui/llfolderviewitem.h @@ -118,6 +118,7 @@ protected:  	// For now assuming all colors are the same in derived classes.  	static LLUIColor			sFgColor; +	static LLUIColor			sFgDisabledColor;  	static LLUIColor			sHighlightBgColor;  	static LLUIColor			sHighlightFgColor;  	static LLUIColor			sFocusOutlineColor; 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. | 
