diff options
| author | Don Kjer <don@lindenlab.com> | 2007-09-14 21:13:20 +0000 |
|---|---|---|
| committer | Don Kjer <don@lindenlab.com> | 2007-09-14 21:13:20 +0000 |
| commit | 13c391f1984bb8cb9d67a7729af2ee5714409215 (patch) | |
| tree | 112edff1d25adabb4893e6746ba76a4182865f8a /indra/newview/llselectmgr.cpp | |
| parent | b3d807d5ff8dca6c891e9a5e0ddc7bc147d69f8c (diff) | |
EFFECTIVE MERGE: svn merge -r 68118:68999 svn+ssh://svn/svn/linden/branches/maintenance
ACTUAL MERGE: svn merge -r 69685:69687 svn+ssh://svn/svn/linden/branches/release-r69649-maintenance-sync
EQUIVALENT TO: svn merge -r 68118:69663 svn+ssh://svn/svn/linden/branches/maintenance-r68999
Diffstat (limited to 'indra/newview/llselectmgr.cpp')
| -rw-r--r-- | indra/newview/llselectmgr.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp index 2e67112e3e..bfb46301c2 100644 --- a/indra/newview/llselectmgr.cpp +++ b/indra/newview/llselectmgr.cpp @@ -4170,11 +4170,21 @@ void LLSelectMgr::sendListToRegions(const LLString& message_name, switch(send_type) { case SEND_ONLY_ROOTS: - node = mSelectedObjects->getFirstRootNode(); - while(node) { - nodes_to_send.push(node); - node = mSelectedObjects->getNextRootNode(); + node = mSelectedObjects->getFirstRootNode(); + + while(node) + { + // look and see if this object is actually modifiable by the current agent, because if it's not, then there's little + // point in pushing it up to the server to be updated, since we couldn't change it anywa. + // That just results in errors on screen when this function gets called by other things, like pulling down a drop down menu + LLViewerObject* object = node->getObject(); + if( object && (object->permModify() || gAgent.allowOperation(PERM_MODIFY, *node->mPermissions) || gAgent.allowOperation(PERM_MOVE, *node->mPermissions))) + { + nodes_to_send.push(node); + } + node = mSelectedObjects->getNextRootNode(); + } } break; case SEND_INDIVIDUALS: |
