diff --git a/indra/newview/fsfloaterposer.cpp b/indra/newview/fsfloaterposer.cpp
index b90705a31d..dd59d39637 100644
--- a/indra/newview/fsfloaterposer.cpp
+++ b/indra/newview/fsfloaterposer.cpp
@@ -238,7 +238,7 @@ void FSFloaterPoser::onClose(bool app_quitting)
gSavedSettings.setBOOL(POSER_ADVANCEDWINDOWSTATE_SAVE_KEY, mToggleAdvancedPanelBtn->getValue().asBoolean());
if (gSavedSettings.getBOOL(POSER_STOPPOSINGWHENCLOSED_SAVE_KEY))
- stopPosingSelf();
+ stopPosingAllAvatars();
LLFloater::onClose(app_quitting);
}
@@ -892,20 +892,24 @@ void FSFloaterPoser::startPosingSelf()
onAvatarSelect();
}
-void FSFloaterPoser::stopPosingSelf()
+void FSFloaterPoser::stopPosingAllAvatars()
{
if (!gAgentAvatarp || gAgentAvatarp.isNull())
return;
- LLVOAvatar* avatar = getAvatarByUuid(gAgentAvatarp->getID());
- if (!avatar)
- return;
+ for (auto listItem : mAvatarSelectionScrollList->getAllData())
+ {
+ LLScrollListCell* cell = listItem->getColumn(COL_UUID);
+ if (!cell)
+ continue;
- bool arePosingSelected = mPoserAnimator.isPosingAvatar(avatar);
- if (!arePosingSelected)
- return;
+ LLUUID selectedAvatarId = cell->getValue().asUUID();
+ LLVOAvatar* listAvatar = getAvatarByUuid(selectedAvatarId);
+
+ if (mPoserAnimator.isPosingAvatar(listAvatar))
+ mPoserAnimator.stopPosingAvatar(listAvatar);
+ }
- mPoserAnimator.stopPosingAvatar(avatar);
onAvatarSelect();
}
@@ -2074,7 +2078,7 @@ void FSFloaterPoser::onAvatarsRefresh()
LLAvatarName av_name;
std::string animeshName = getControlAvatarName(avatar);
if (animeshName.empty())
- animeshName = avatar->getFullname();
+ continue;
LLSD row;
row["columns"][COL_ICON]["column"] = "icon";
@@ -2109,6 +2113,9 @@ std::string FSFloaterPoser::getControlAvatarName(const LLControlAvatar* avatar)
if (attachedItem)
return attachedItem->getName();
+ if (rootEditObject->permYouOwner())
+ return avatar->getFullname();
+
return "";
}
@@ -2146,24 +2153,6 @@ void FSFloaterPoser::setSavePosesButtonText(bool setAsSaveDiff)
setAsSaveDiff ? mSavePosesBtn->setLabel("Save Diff") : mSavePosesBtn->setLabel("Save Pose");
}
-bool FSFloaterPoser::posingAnyoneOnScrollList()
-{
- for (auto listItem : mAvatarSelectionScrollList->getAllData())
- {
- LLScrollListCell* cell = listItem->getColumn(COL_UUID);
- if (!cell)
- continue;
-
- LLUUID selectedAvatarId = cell->getValue().asUUID();
- LLVOAvatar* listAvatar = getAvatarByUuid(selectedAvatarId);
-
- if (mPoserAnimator.isPosingAvatar(listAvatar))
- return true;
- }
-
- return false;
-}
-
void FSFloaterPoser::addBoldToScrollList(LLScrollListCtrl* list, LLVOAvatar* avatar)
{
if (!avatar)
diff --git a/indra/newview/fsfloaterposer.h b/indra/newview/fsfloaterposer.h
index f847fb587a..163d90f7a5 100644
--- a/indra/newview/fsfloaterposer.h
+++ b/indra/newview/fsfloaterposer.h
@@ -236,7 +236,7 @@ class FSFloaterPoser : public LLFloater
void enableOrDisableRedoButton();
void onPoseStartStop();
void startPosingSelf();
- void stopPosingSelf();
+ void stopPosingAllAvatars();
void onLimbTrackballChanged();
void onYawPitchRollSliderChanged();
void onAvatarPositionSet();
@@ -328,11 +328,6 @@ class FSFloaterPoser : public LLFloater
/// Whether to indicate a diff will be saved, instead of a pose.
void setSavePosesButtonText(bool setAsSaveDiff);
- ///
- /// Gets whether any avatar know by the UI is being posed.
- ///
- bool posingAnyoneOnScrollList();
-
///
/// Applies the appropriate font-face (such as bold) to the text of the supplied list, to indicate use.
///
diff --git a/indra/newview/skins/default/xui/en/floater_fs_poser.xml b/indra/newview/skins/default/xui/en/floater_fs_poser.xml
index b10ca485d1..f4234960e1 100644
--- a/indra/newview/skins/default/xui/en/floater_fs_poser.xml
+++ b/indra/newview/skins/default/xui/en/floater_fs_poser.xml
@@ -923,7 +923,7 @@ width="403">
layout="topleft"
image_overlay="Inv_TrashOpen"
image_unselected="Toolbar_Middle_Off"
- name="refresh_avatars"
+ name="poser_joint_reset"
tool_tip="Double click to reset all selected body parts to when you first started posing"
width="18"
top_delta="0"