diff options
Diffstat (limited to 'indra/newview')
-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); } |