MAINT-86 Fixed object-contents aren't updated after wearing from ground

meow-7.2.2
andreykproductengine 2017-01-27 17:43:27 +02:00
parent e51fd03945
commit ded008a8e1
3 changed files with 16 additions and 0 deletions

View File

@ -1849,6 +1849,7 @@ void LLPanelObjectInventory::refresh()
if(mTaskUUID != object->mID)
{
mTaskUUID = object->mID;
mAttachmentUUID = object->getAttachmentItemID();
make_request = TRUE;
// This is a new object so pre-emptively clear the contents
@ -1858,6 +1859,16 @@ void LLPanelObjectInventory::refresh()
// Register for updates from this object,
registerVOInventoryListener(object,NULL);
}
else if (mAttachmentUUID != object->getAttachmentItemID())
{
mAttachmentUUID = object->getAttachmentItemID();
if (mAttachmentUUID.notNull())
{
// Server unsubsribes viewer (deselects object) from property
// updates after "ObjectAttach" so we need to resubscribe
LLSelectMgr::getInstance()->sendSelect();
}
}
// Based on the node information, we may need to dirty the
// object inventory and get it again.
@ -1888,6 +1899,7 @@ void LLPanelObjectInventory::refresh()
void LLPanelObjectInventory::clearInventoryTask()
{
mTaskUUID = LLUUID::null;
mAttachmentUUID = LLUUID::null;
removeVOInventoryListener();
clearContents();
}

View File

@ -105,6 +105,7 @@ private:
LLFolderView* mFolders;
LLUUID mTaskUUID;
LLUUID mAttachmentUUID;
BOOL mHaveInventory;
BOOL mIsInventoryEmpty;
BOOL mInventoryNeedsUpdate;

View File

@ -4416,6 +4416,9 @@ void LLSelectMgr::sendAttach(U8 attachment_point, bool replace)
SEND_ONLY_ROOTS );
if (!build_mode)
{
// After "ObjectAttach" server will unsubscribe us from properties updates
// so either deselect objects or resend selection after attach packet reaches server
// In case of build_mode LLPanelObjectInventory::refresh() will deal with selection
deselectAll();
}
}