diff --git a/indra/newview/fsfloaterposer.cpp b/indra/newview/fsfloaterposer.cpp
index 9f058c8cc3..7851bf9d5f 100644
--- a/indra/newview/fsfloaterposer.cpp
+++ b/indra/newview/fsfloaterposer.cpp
@@ -733,7 +733,10 @@ void FSFloaterPoser::loadPoseFromXml(LLVOAvatar* avatar, const std::string& pose
loadPositionsAndScalesAsDeltas = true;
if (startFromZeroRot) // old save formats will always start from T-Pose, for better or worse.
+ {
+ disableRecapture();
mPoserAnimator.setAllAvatarStartingRotationsToZero(avatar);
+ }
for (LLSD::map_const_iterator itr = pose.beginMap(); itr != pose.endMap(); ++itr)
{
@@ -1129,10 +1132,7 @@ void FSFloaterPoser::onSetAvatarToTpose()
if (!avatar)
return;
- mRecaptureJointsButton->setEnabled(false);
- mSavePosesBtn->setLabel("Save Pose");
- mDisableRecaptureUntilStopPosing = true;
-
+ disableRecapture();
mPoserAnimator.setAllAvatarStartingRotationsToZero(avatar);
}
@@ -2039,6 +2039,13 @@ void FSFloaterPoser::refreshTextHighlightingOnAllScrollLists()
addBoldToScrollList(mCollisionVolumesScrollList, avatar);
}
+void FSFloaterPoser::disableRecapture()
+{
+ mRecaptureJointsButton->setEnabled(false);
+ mSavePosesBtn->setLabel("Save Pose");
+ mDisableRecaptureUntilStopPosing = true;
+}
+
void FSFloaterPoser::reEnableRecaptureIfAllowed()
{
if (posingAnyoneOnScrollList())
diff --git a/indra/newview/fsfloaterposer.h b/indra/newview/fsfloaterposer.h
index 71c2fb4126..198d6097ba 100644
--- a/indra/newview/fsfloaterposer.h
+++ b/indra/newview/fsfloaterposer.h
@@ -298,6 +298,11 @@ class FSFloaterPoser : public LLFloater
///
void refreshTextHighlightingOnAllScrollLists();
+ ///
+ /// Disables recapturing joint traits.
+ ///
+ void disableRecapture();
+
///
/// Recapture is be disabled if user is making their own pose (starting from a T-Pose).
///