diff --git a/indra/newview/llimfloatercontainer.cpp b/indra/newview/llimfloatercontainer.cpp index 14ed0b3c3e87eb71fbe82e90e4938da6f659c469..cf4d054dd5259bbde94367087678cdaa95d53e8b 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 64477765e1b57dccb2c7d87dabb95b91a097dbfb..46fd8c12904e852f1f9bdb52630c02b8ea03731f 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); }