diff options
author | Cho <cho@lindenlab.com> | 2013-02-01 18:54:15 +0000 |
---|---|---|
committer | Cho <cho@lindenlab.com> | 2013-02-01 18:54:15 +0000 |
commit | 56b158e486f97f26c87ac37923f5dfbc2cc7548a (patch) | |
tree | f29399d0d297573d5560a496ae1367436815656b /indra/newview/llfloaterimsession.cpp | |
parent | 97930c72b6f869e9bb47cda7d9ecfccf1a25a3fa (diff) |
CHUI-675 FIX You can select multiple users in people floater but can only drag and drop one name to conversation
Moved drag and drop start in LLAvatarListItem instead of LLAvatarList, and made LLFloaterIMSession handle multiple dropped participants correctly
Diffstat (limited to 'indra/newview/llfloaterimsession.cpp')
-rw-r--r-- | indra/newview/llfloaterimsession.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/indra/newview/llfloaterimsession.cpp b/indra/newview/llfloaterimsession.cpp index f754853b82..50b2ed8c51 100644 --- a/indra/newview/llfloaterimsession.cpp +++ b/indra/newview/llfloaterimsession.cpp @@ -1044,6 +1044,19 @@ void LLFloaterIMSession::processSessionUpdate(const LLSD& session_update) } // virtual +void LLFloaterIMSession::draw() +{ + // add people who were added via dropPerson() + if (!mPendingParticipants.empty()) + { + addSessionParticipants(mPendingParticipants); + mPendingParticipants.clear(); + } + + LLFloaterIMSessionTab::draw(); +} + +// virtual BOOL LLFloaterIMSession::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, EDragAndDropType cargo_type, void* cargo_data, @@ -1081,7 +1094,9 @@ bool LLFloaterIMSession::dropPerson(LLUUID* person_id, bool drop) res = canAddSelectedToChat(ids); if(res && drop) { - addSessionParticipants(ids); + // these people will be added during the next draw() call + // (so they can be added all at once) + mPendingParticipants.push_back(*person_id); } } |