Skip to content
Snippets Groups Projects
Commit 7af25816 authored by Tofu Linden's avatar Tofu Linden
Browse files

merge storm-99

parents f310e6fd 5a4728d2
No related branches found
No related tags found
No related merge requests found
...@@ -916,6 +916,8 @@ BOOL is_inventorysp_active() ...@@ -916,6 +916,8 @@ BOOL is_inventorysp_active()
// static // static
LLInventoryPanel* LLInventoryPanel::getActiveInventoryPanel(BOOL auto_open) LLInventoryPanel* LLInventoryPanel::getActiveInventoryPanel(BOOL auto_open)
{ {
S32 z_min = S32_MAX;
LLInventoryPanel* res = NULL;
// A. If the inventory side panel is open, use that preferably. // A. If the inventory side panel is open, use that preferably.
if (is_inventorysp_active()) if (is_inventorysp_active())
{ {
...@@ -925,11 +927,26 @@ LLInventoryPanel* LLInventoryPanel::getActiveInventoryPanel(BOOL auto_open) ...@@ -925,11 +927,26 @@ LLInventoryPanel* LLInventoryPanel::getActiveInventoryPanel(BOOL auto_open)
return inventorySP->getActivePanel(); return inventorySP->getActivePanel();
} }
} }
// or if it is in floater undocked from sidetray get it and remember z order of floater to later compare it
// with other inventory floaters order.
else if (!LLSideTray::getInstance()->isTabAttached("sidebar_inventory"))
{
LLSidepanelInventory *inventorySP =
dynamic_cast<LLSidepanelInventory *>(LLSideTray::getInstance()->getPanel("sidepanel_inventory"));
LLFloater* inv_floater = LLFloaterReg::findInstance("side_bar_tab", LLSD("sidebar_inventory"));
if (inventorySP && inv_floater)
{
res = inventorySP->getActivePanel();
z_min = gFloaterView->getZOrder(inv_floater);
}
else
{
llwarns << "Inventory tab is detached from sidetray, but either panel or floater were not found!" << llendl;
}
}
// B. Iterate through the inventory floaters and return whichever is on top. // B. Iterate through the inventory floaters and return whichever is on top.
LLFloaterReg::const_instance_list_t& inst_list = LLFloaterReg::getFloaterList("inventory"); LLFloaterReg::const_instance_list_t& inst_list = LLFloaterReg::getFloaterList("inventory");
S32 z_min = S32_MAX;
LLInventoryPanel* res = NULL;
for (LLFloaterReg::const_instance_list_t::const_iterator iter = inst_list.begin(); iter != inst_list.end(); ++iter) for (LLFloaterReg::const_instance_list_t::const_iterator iter = inst_list.begin(); iter != inst_list.end(); ++iter)
{ {
LLFloaterInventory* iv = dynamic_cast<LLFloaterInventory*>(*iter); LLFloaterInventory* iv = dynamic_cast<LLFloaterInventory*>(*iter);
......
...@@ -314,6 +314,7 @@ void LLSideTrayTab::undock(LLFloater* floater_tab) ...@@ -314,6 +314,7 @@ void LLSideTrayTab::undock(LLFloater* floater_tab)
floater_tab->addChild(this); floater_tab->addChild(this);
floater_tab->setTitle(mTabTitle); floater_tab->setTitle(mTabTitle);
floater_tab->setName(getName());
// Reshape the floater if needed. // Reshape the floater if needed.
LLRect floater_rect; LLRect floater_rect;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment