summaryrefslogtreecommitdiff
path: root/indra/newview/llpanelobject.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llpanelobject.cpp')
-rw-r--r--indra/newview/llpanelobject.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/indra/newview/llpanelobject.cpp b/indra/newview/llpanelobject.cpp
index f0cd0f5d19..2e41aa8002 100644
--- a/indra/newview/llpanelobject.cpp
+++ b/indra/newview/llpanelobject.cpp
@@ -501,24 +501,30 @@ void LLPanelObject::getState( )
}
BOOL is_flexible = volobjp && volobjp->isFlexible();
+ BOOL is_permanent = root_objectp->flagObjectPermanent();
+ BOOL is_permanent_enforced = root_objectp->isPermanentEnforced();
// Physics checkbox
mIsPhysical = root_objectp->flagUsePhysics();
+ //llassert(is_permanent && mIsPhysical); // should never has a permanent object that is also physical
+
mCheckPhysics->set( mIsPhysical );
mCheckPhysics->setEnabled( roots_selected>0
&& (editable || gAgent.isGodlike())
- && !is_flexible);
+ && !is_flexible && !is_permanent);
mIsTemporary = root_objectp->flagTemporaryOnRez();
+ //llassert(is_permanent && mIsTemporary); // should never has a permanent object that is also temporary
+
mCheckTemporary->set( mIsTemporary );
- mCheckTemporary->setEnabled( roots_selected>0 && editable );
+ mCheckTemporary->setEnabled( roots_selected>0 && editable && !is_permanent);
mIsPhantom = root_objectp->flagPhantom();
mCheckPhantom->set( mIsPhantom );
- mCheckPhantom->setEnabled( roots_selected>0 && editable && !is_flexible );
+ mCheckPhantom->setEnabled( roots_selected>0 && editable && !is_flexible && !is_permanent_enforced );
- mCheckPermanent->set( root_objectp->flagObjectPermanent() );
- mCheckPermanent->setEnabled( FALSE );
+ mCheckPermanent->set(is_permanent);
+ mCheckPermanent->setEnabled(FALSE);
//----------------------------------------------------------------------------