summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandreylproductengine <andreylproductengine@lindenlab.com>2014-03-13 01:44:41 +0200
committerandreylproductengine <andreylproductengine@lindenlab.com>2014-03-13 01:44:41 +0200
commit4fdf1c34b43f73c576576a6487c16e99e2ed75fc (patch)
treeeade75f6e969217ec56e484b86af3ab2fa3d35db
parent9670f19cc3fa71d86c72362e7ac1f95dd0387809 (diff)
MAINT-3812 FIXED "Remove from outfit" is unavailable for folders containing only gestures
-rwxr-xr-xindra/newview/llappearancemgr.cpp12
-rwxr-xr-xindra/newview/llinventoryfunctions.cpp2
2 files changed, 13 insertions, 1 deletions
diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp
index da1609297e..415cefb5a9 100755
--- a/indra/newview/llappearancemgr.cpp
+++ b/indra/newview/llappearancemgr.cpp
@@ -1431,6 +1431,18 @@ void LLAppearanceMgr::takeOffOutfit(const LLUUID& cat_id)
uuids_to_remove.push_back(item->getUUID());
}
removeItemsFromAvatar(uuids_to_remove);
+
+ // now deactivating all gestures in that folder
+ LLInventoryModel::item_array_t gest_items;
+ getDescendentsOfAssetType(cat_id, gest_items, LLAssetType::AT_GESTURE, false);
+ for (S32 i = 0; i < gest_items.count(); ++i)
+ {
+ LLViewerInventoryItem *gest_item = gest_items.get(i);
+ if (LLGestureMgr::instance().isGestureActive(gest_item->getLinkedUUID()))
+ {
+ LLGestureMgr::instance().deactivateGesture(gest_item->getLinkedUUID());
+ }
+ }
}
// Create a copy of src_id + contents as a subfolder of dst_id.
diff --git a/indra/newview/llinventoryfunctions.cpp b/indra/newview/llinventoryfunctions.cpp
index f1a4889f5a..aa50795eb5 100755
--- a/indra/newview/llinventoryfunctions.cpp
+++ b/indra/newview/llinventoryfunctions.cpp
@@ -877,7 +877,7 @@ bool LLFindWearablesEx::operator()(LLInventoryCategory* cat, LLInventoryItem* it
if (!vitem) return false;
// Skip non-wearables.
- if (!vitem->isWearableType() && vitem->getType() != LLAssetType::AT_OBJECT)
+ if (!vitem->isWearableType() && vitem->getType() != LLAssetType::AT_OBJECT && vitem->getType() != LLAssetType::AT_GESTURE)
{
return false;
}