diff --git a/indra/newview/llpanelobject.cpp b/indra/newview/llpanelobject.cpp index 736164facad118dcc70d657697f8842db7b0e8f8..cd2764ade4d1f9b0aa7f8be88aa402af0ffc830e 100644 --- a/indra/newview/llpanelobject.cpp +++ b/indra/newview/llpanelobject.cpp @@ -71,7 +71,7 @@ // [/RLVa:KB] #include "lldrawpool.h" - +#include "llviewerjointattachment.h" // // Constants // @@ -395,6 +395,16 @@ void LLPanelObject::getState( ) mCtrlPosY->setEnabled(enable_move); mCtrlPosZ->setEnabled(enable_move); + LLViewerRegion* regionp = objectp->getRegion(); + F32 width = regionp != nullptr ? regionp->getWidth() : REGION_WIDTH_METERS; + bool is_attachment = objectp->isAttachment(); + mCtrlPosX->setMinValue(is_attachment ? -MAX_ATTACHMENT_DIST : -width); + mCtrlPosX->setMaxValue(is_attachment ? MAX_ATTACHMENT_DIST : width); + mCtrlPosY->setMinValue(is_attachment ? -MAX_ATTACHMENT_DIST : -width); + mCtrlPosY->setMaxValue(is_attachment ? MAX_ATTACHMENT_DIST : width); + mCtrlPosZ->setMinValue(is_attachment ? -MAX_ATTACHMENT_DIST : 0); + mCtrlPosZ->setMaxValue(is_attachment ? MAX_ATTACHMENT_DIST : 4096); + if (enable_scale) { vec = objectp->getScale(); diff --git a/indra/newview/llviewerjointattachment.h b/indra/newview/llviewerjointattachment.h index e5edf2c06b6d974f6a25b30dd2be71997e983d6a..c20ba9c3931f4107d04af10b361e8dac6c37b3b9 100644 --- a/indra/newview/llviewerjointattachment.h +++ b/indra/newview/llviewerjointattachment.h @@ -37,6 +37,8 @@ class LLDrawable; class LLViewerObject; +extern const F32 MAX_ATTACHMENT_DIST; + //----------------------------------------------------------------------------- // class LLViewerJointAttachment //-----------------------------------------------------------------------------