diff options
author | Oz Linden <oz@lindenlab.com> | 2017-08-23 09:19:59 -0400 |
---|---|---|
committer | Oz Linden <oz@lindenlab.com> | 2017-08-23 09:19:59 -0400 |
commit | bcf5dc079a5dc9434b541a971e28315fa5cb9816 (patch) | |
tree | 16f6b186d704ca9682bcbfcb8aca1e29ef85b103 /indra/newview/lltooldraganddrop.cpp | |
parent | fa53653e60f5761c157b76423b4449fe38788d8f (diff) | |
parent | 08cbed55ef5689fcc5a02dfb3b9afde15487036e (diff) |
merge changes for 5.0.7-release
Diffstat (limited to 'indra/newview/lltooldraganddrop.cpp')
-rw-r--r-- | indra/newview/lltooldraganddrop.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/indra/newview/lltooldraganddrop.cpp b/indra/newview/lltooldraganddrop.cpp index 49436ee406..bd68d8c999 100644 --- a/indra/newview/lltooldraganddrop.cpp +++ b/indra/newview/lltooldraganddrop.cpp @@ -1450,13 +1450,20 @@ void LLToolDragAndDrop::dropInventory(LLViewerObject* hit_obj, // accessor that looks at permissions, copyability, and names of // inventory items to determine if a drop would be ok. -EAcceptance LLToolDragAndDrop::willObjectAcceptInventory(LLViewerObject* obj, LLInventoryItem* item) +EAcceptance LLToolDragAndDrop::willObjectAcceptInventory(LLViewerObject* obj, LLInventoryItem* item, EDragAndDropType type) { // check the basics if (!item || !obj) return ACCEPT_NO; // HACK: downcast LLViewerInventoryItem* vitem = (LLViewerInventoryItem*)item; - if (!vitem->isFinished()) return ACCEPT_NO; + if (!vitem->isFinished() && (type != DAD_CATEGORY)) + { + // Note: for DAD_CATEGORY we assume that folder version check passed and folder + // is complete, meaning that items inside are up to date. + // (isFinished() == false) at the moment shows that item was loaded from cache. + // Library or agent inventory only. + return ACCEPT_NO; + } if (vitem->getIsLinkType()) return ACCEPT_NO; // No giving away links // deny attempts to drop from an object onto itself. This is to @@ -2296,7 +2303,7 @@ EAcceptance LLToolDragAndDrop::dad3dUpdateInventoryCategory( (*item_iter) = item; } */ - rv = willObjectAcceptInventory(root_object, item); + rv = willObjectAcceptInventory(root_object, item, DAD_CATEGORY); if (rv < ACCEPT_YES_COPY_SINGLE) { LL_DEBUGS() << "Object will not accept " << item->getUUID() << LL_ENDL; |