diff options
| -rw-r--r-- | indra/newview/llimfloatercontainer.cpp | 6 | ||||
| -rw-r--r-- | indra/newview/llspeakers.cpp | 4 | 
2 files changed, 8 insertions, 2 deletions
diff --git a/indra/newview/llimfloatercontainer.cpp b/indra/newview/llimfloatercontainer.cpp index 14ed0b3c3e..cf4d054dd5 100644 --- a/indra/newview/llimfloatercontainer.cpp +++ b/indra/newview/llimfloatercontainer.cpp @@ -1113,6 +1113,9 @@ void LLIMFloaterContainer::setItemSelect(const LLUUID& session_id)              mSelectedSession = session_id;              LLFolderViewItem* widget = mConversationsWidgets[session_id];              (widget->getRoot())->setSelection(widget, FALSE, FALSE); + +			// Scroll to selected item +			mConversationsRoot->scrollToShowSelection();          }      }  } @@ -1228,6 +1231,9 @@ void LLIMFloaterContainer::addConversationListItem(const LLUUID& uuid, bool isWi  	// set the widget to minimized mode if conversations pane is collapsed  	widget->toggleMinimizedMode(mConversationsPane->isCollapsed()); +	// scroll to newly added item +	mConversationsRoot->scrollToShowSelection(); +  	return;  } diff --git a/indra/newview/llspeakers.cpp b/indra/newview/llspeakers.cpp index 64477765e1..46fd8c1290 100644 --- a/indra/newview/llspeakers.cpp +++ b/indra/newview/llspeakers.cpp @@ -533,8 +533,8 @@ void LLSpeakerMgr::updateSpeakerList()  			LLIMModel::LLIMSession* session = LLIMModel::getInstance()->findIMSession(session_id);  			for (uuid_vec_t::iterator it = session->mInitialTargetIDs.begin();it!=session->mInitialTargetIDs.end();++it)  			{ -				// We only add avatars that are on line -				if (LLAvatarTracker::instance().isBuddyOnline(*it)) +				// Allow to set buddies if they are on line. Allow any other avatar. +				if (!LLAvatarTracker::instance().isBuddy(*it) || LLAvatarTracker::instance().isBuddyOnline(*it))  				{  					setSpeaker(*it, "", LLSpeaker::STATUS_VOICE_ACTIVE, LLSpeaker::SPEAKER_AGENT);  				}  | 
