diff options
| author | Todd Stinson <stinson@lindenlab.com> | 2012-03-13 15:33:15 -0700 |
|---|---|---|
| committer | Todd Stinson <stinson@lindenlab.com> | 2012-03-13 15:33:15 -0700 |
| commit | 378ae8ce6588ce921b2aa960c08d4293c6b419e5 (patch) | |
| tree | 60430a40b06753c6aa4571cb7b2ee366e711a5f1 /indra/newview/llmaniprotate.cpp | |
| parent | 629ec1d54d16549d42198a9ac83a33bb9b51ab22 (diff) | |
PATH-199: Enforcing permanent objects in frozen state to not move.
Diffstat (limited to 'indra/newview/llmaniprotate.cpp')
| -rw-r--r-- | indra/newview/llmaniprotate.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/indra/newview/llmaniprotate.cpp b/indra/newview/llmaniprotate.cpp index a8da94f75e..7ac347e66a 100644 --- a/indra/newview/llmaniprotate.cpp +++ b/indra/newview/llmaniprotate.cpp @@ -481,7 +481,7 @@ BOOL LLManipRotate::handleMouseUp(S32 x, S32 y, MASK mask) LLViewerObject* object = selectNode->getObject(); // have permission to move and object is root of selection or individually selected - if (object->permMove() && (object->isRootEdit() || selectNode->mIndividualSelection)) + if (object->permMove() && !object->isPermanentEnforced() && (object->isRootEdit() || selectNode->mIndividualSelection)) { object->mUnselectedChildrenPositions.clear() ; } @@ -569,7 +569,7 @@ void LLManipRotate::drag( S32 x, S32 y ) LLViewerObject* object = selectNode->getObject(); // have permission to move and object is root of selection or individually selected - if (object->permMove() && (object->isRootEdit() || selectNode->mIndividualSelection)) + if (object->permMove() && !object->isPermanentEnforced() && (object->isRootEdit() || selectNode->mIndividualSelection)) { if (!object->isRootEdit()) { @@ -623,7 +623,7 @@ void LLManipRotate::drag( S32 x, S32 y ) LLViewerObject* object = selectNode->getObject(); // to avoid cumulative position changes we calculate the objects new position using its saved position - if (object && object->permMove()) + if (object && object->permMove() && !object->isPermanentEnforced()) { LLVector3 center = gAgent.getPosAgentFromGlobal( mRotationCenter ); @@ -704,7 +704,7 @@ void LLManipRotate::drag( S32 x, S32 y ) { LLSelectNode* selectNode = *iter; LLViewerObject*cur = selectNode->getObject(); - if( cur->permModify() && cur->permMove() && !cur->isAvatar()) + if( cur->permModify() && cur->permMove() && !cur->isPermanentEnforced() && !cur->isAvatar()) { selectNode->mLastRotation = cur->getRotation(); selectNode->mLastPositionLocal = cur->getPosition(); @@ -1871,7 +1871,7 @@ BOOL LLManipRotate::canAffectSelection() { virtual bool apply(LLViewerObject* objectp) { - return objectp->permMove() && (objectp->permModify() || !gSavedSettings.getBOOL("EditLinkedParts")); + return objectp->permMove() && !objectp->isPermanentEnforced() && (objectp->permModify() || !gSavedSettings.getBOOL("EditLinkedParts")); } } func; can_rotate = mObjectSelection->applyToObjects(&func); |
