From 9a34791488b0d2fc68fc7bc09f0685fe42557ea4 Mon Sep 17 00:00:00 2001 From: Mnikolenko Productengine Date: Thu, 19 Oct 2017 17:07:22 +0300 Subject: MAINT-7906 FIXED Inventory jumps when detaching worn items in appearance panel --- indra/newview/llpanelmaininventory.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'indra/newview/llpanelmaininventory.cpp') diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp index f771a027e0..7d4a05565c 100644 --- a/indra/newview/llpanelmaininventory.cpp +++ b/indra/newview/llpanelmaininventory.cpp @@ -29,6 +29,7 @@ #include "llagent.h" #include "llagentcamera.h" +#include "llagentwearables.h" #include "llavataractions.h" #include "llcheckboxctrl.h" #include "llcombobox.h" @@ -179,6 +180,8 @@ BOOL LLPanelMainInventory::postBuild() mWornItemsPanel->setFilterLinks(LLInventoryFilter::FILTERLINK_EXCLUDE_LINKS); mWornItemsPanel->getFilter().markDefault(); mWornItemsPanel->setSelectCallback(boost::bind(&LLPanelMainInventory::onSelectionChange, this, mWornItemsPanel, _1, _2)); + + gAgentWearables.addLoadedCallback(boost::bind(&LLPanelMainInventory::updateWornItemsPanel, this)); } mSearchTypeCombo = getChild("search_type"); if(mSearchTypeCombo) @@ -336,6 +339,18 @@ BOOL LLPanelMainInventory::handleKeyHere(KEY key, MASK mask) } +void LLPanelMainInventory::updateWornItemsPanel() +{ + if (!mUpdateWornTimer.getStarted()) + { + mUpdateWornTimer.start(); + } + else + { + mUpdateWornTimer.reset(); + } +} + //---------------------------------------------------------------------------- // menu callbacks @@ -670,6 +685,11 @@ void LLPanelMainInventory::draw() mActivePanel->setSortOrder(order); mResortActivePanel = false; } + if (mWornItemsPanel && mUpdateWornTimer.getStarted() && (mUpdateWornTimer.getElapsedTimeF32() > 1)) + { + mUpdateWornTimer.stop(); + mWornItemsPanel->getFilter().setModified(LLFolderViewFilter::FILTER_MORE_RESTRICTIVE); + } LLPanel::draw(); updateItemcountText(); } -- cgit v1.3