summaryrefslogtreecommitdiff
path: root/indra/newview/lltooldraganddrop.cpp
diff options
context:
space:
mode:
authorcallum_linden <none@none>2015-08-31 11:17:28 -0700
committercallum_linden <none@none>2015-08-31 11:17:28 -0700
commit1db2c7276d0bb1039ad8be9240201732ad5387cd (patch)
treea2bc6f6f80772cc459f23a075ba3bc0b75b5de48 /indra/newview/lltooldraganddrop.cpp
parent0ad81961cd5aea97231959fd31daa22dd2d8908a (diff)
parent1be63209331d509396bd7ee79302d511fe83d72e (diff)
Merge with viewer-release
Diffstat (limited to 'indra/newview/lltooldraganddrop.cpp')
-rwxr-xr-xindra/newview/lltooldraganddrop.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/indra/newview/lltooldraganddrop.cpp b/indra/newview/lltooldraganddrop.cpp
index 79c31e15bf..81fbc471b3 100755
--- a/indra/newview/lltooldraganddrop.cpp
+++ b/indra/newview/lltooldraganddrop.cpp
@@ -1009,9 +1009,15 @@ BOOL LLToolDragAndDrop::handleDropTextureProtections(LLViewerObject* hit_obj,
return TRUE;
}
- // In case the inventory has not been updated (e.g. due to some recent operation
- // causing a dirty inventory), stall the user while fetching the inventory.
- if (hit_obj->isInventoryDirty())
+ // In case the inventory has not been loaded (e.g. due to some recent operation
+ // causing a dirty inventory) and we can do an update, stall the user
+ // while fetching the inventory.
+ //
+ // Note: fetch only if inventory is both dirty and not present since previously checked faces
+ // could have requested new fetch for same item (removed inventory and marked as dirty=false).
+ // Objects without listeners (dirty==true and inventory!=NULL. In this specific case - before
+ // first fetch) shouldn't be updated either since we won't receive any changes.
+ if (hit_obj->isInventoryDirty() && hit_obj->getInventoryRoot() == NULL)
{
hit_obj->fetchInventoryFromServer();
LLSD args;