diff --git a/doc/contributions.txt b/doc/contributions.txt index ea9ccd576e1ca44edf684aae9130e1a259945187..a3214d4c3317575364ec939ec7a0e39f7d767f03 100644 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -590,6 +590,7 @@ Jonathan Yap STORM-1659 STORM-1674 STORM-1685 + STORM-1712 STORM-1728 Kadah Coba STORM-1060 diff --git a/indra/newview/llparticipantlist.cpp b/indra/newview/llparticipantlist.cpp index fb1153980aa3dae6893ba454f693713832ac90bc..5c95e805ce9d9c3e7664b5810c56a849da86bcce 100644 --- a/indra/newview/llparticipantlist.cpp +++ b/indra/newview/llparticipantlist.cpp @@ -468,7 +468,7 @@ void LLParticipantList::setValidateSpeakerCallback(validate_speaker_callback_t c void LLParticipantList::updateRecentSpeakersOrder() { - if (E_SORT_BY_RECENT_SPEAKERS == getSortOrder()) + if (E_SORT_BY_RECENT_SPEAKERS == getSortOrder() && !isHovered()) { // Need to update speakers to sort list correctly mSpeakerMgr->update(true); @@ -477,6 +477,13 @@ void LLParticipantList::updateRecentSpeakersOrder() } } +bool LLParticipantList::isHovered() +{ + S32 x, y; + LLUI::getMousePositionScreen(&x, &y); + return mAvatarList->calcScreenRect().pointInRect(x, y); +} + bool LLParticipantList::onAddItemEvent(LLPointer<LLOldEvents::LLEvent> event, const LLSD& userdata) { LLUUID uu_id = event->getValue().asUUID(); diff --git a/indra/newview/llparticipantlist.h b/indra/newview/llparticipantlist.h index e0b3d42c25d9229a21f44aa5e4e22323f9a7370a..a001d29b671553ec3666047d5461659f99df9eb4 100644 --- a/indra/newview/llparticipantlist.h +++ b/indra/newview/llparticipantlist.h @@ -251,6 +251,8 @@ class LLParticipantList */ void adjustParticipant(const LLUUID& speaker_id); + bool isHovered(); + LLSpeakerMgr* mSpeakerMgr; LLAvatarList* mAvatarList;