summaryrefslogtreecommitdiff
path: root/indra/newview/llinventorypanel.cpp
diff options
context:
space:
mode:
authorPaul ProductEngine <pguslisty@productengine.com>2011-12-08 18:48:22 +0200
committerPaul ProductEngine <pguslisty@productengine.com>2011-12-08 18:48:22 +0200
commitf75708a9c8a549da0f243d47cc02208821dab5ef (patch)
tree776afb9cb2bdcea150cae7ffb36c515fe76e896b /indra/newview/llinventorypanel.cpp
parent1231c86d2fc1f4a93c97e9c42e58c917f71b6718 (diff)
EXP-1598 FIXED (items from a second inventory window cannot be shared)
- Now select proper inventory floater (from all opened inventory floaters) to share items from.
Diffstat (limited to 'indra/newview/llinventorypanel.cpp')
-rw-r--r--indra/newview/llinventorypanel.cpp27
1 files changed, 10 insertions, 17 deletions
diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp
index d06374d232..80b53d5702 100644
--- a/indra/newview/llinventorypanel.cpp
+++ b/indra/newview/llinventorypanel.cpp
@@ -1105,30 +1105,23 @@ LLInventoryPanel* LLInventoryPanel::getActiveInventoryPanel(BOOL auto_open)
return FALSE;
}
- LLSidepanelInventory *sidepanel_inventory = LLFloaterSidePanelContainer::getPanel<LLSidepanelInventory>("inventory");
+ LLSidepanelInventory *inventory_panel = LLFloaterSidePanelContainer::getPanel<LLSidepanelInventory>("inventory");
- // A. If the inventory side panel floater is open, use that preferably.
- if (is_inventorysp_active())
- {
- // Get the floater's z order to compare it to other inventory floaters' order later.
- res = sidepanel_inventory->getActivePanel();
- z_min = gFloaterView->getZOrder(floater_inventory);
- active_inv_floaterp = floater_inventory;
- }
-
- // B. Iterate through the inventory floaters and return whichever is on top.
+ // Iterate through the inventory floaters and return whichever is on top.
LLFloaterReg::const_instance_list_t& inst_list = LLFloaterReg::getFloaterList("inventory");
for (LLFloaterReg::const_instance_list_t::const_iterator iter = inst_list.begin(); iter != inst_list.end(); ++iter)
{
- LLFloaterInventory* iv = dynamic_cast<LLFloaterInventory*>(*iter);
- if (iv && iv->getVisible())
+ LLFloaterSidePanelContainer* inventory_floater = dynamic_cast<LLFloaterSidePanelContainer*>(*iter);
+ inventory_panel = inventory_floater->findChild<LLSidepanelInventory>("main_panel");
+
+ if (inventory_floater && inventory_panel && inventory_floater->getVisible())
{
- S32 z_order = gFloaterView->getZOrder(iv);
+ S32 z_order = gFloaterView->getZOrder(inventory_floater);
if (z_order < z_min)
{
- res = iv->getPanel();
+ res = inventory_panel->getActivePanel();
z_min = z_order;
- active_inv_floaterp = iv;
+ active_inv_floaterp = inventory_floater;
}
}
}
@@ -1145,7 +1138,7 @@ LLInventoryPanel* LLInventoryPanel::getActiveInventoryPanel(BOOL auto_open)
{
floater_inventory->openFloater();
- res = sidepanel_inventory->getActivePanel();
+ res = inventory_panel->getActivePanel();
}
return res;