summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorTofu Linden <tofu.linden@lindenlab.com>2010-09-13 18:43:44 +0100
committerTofu Linden <tofu.linden@lindenlab.com>2010-09-13 18:43:44 +0100
commit7af2581683857b719716f74ef54585344b367968 (patch)
tree98cad70b0c390a6f7a0e08d3969a879a32dea067 /indra/newview
parentf310e6fd37aee99b28d1bc7327b04df3f086c256 (diff)
parent5a4728d25a141866ee0e712e48824067d26fc696 (diff)
merge storm-99
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/llinventorypanel.cpp21
-rw-r--r--indra/newview/llsidetray.cpp1
2 files changed, 20 insertions, 2 deletions
diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp
index 820520df9e..50adae09c0 100644
--- a/indra/newview/llinventorypanel.cpp
+++ b/indra/newview/llinventorypanel.cpp
@@ -916,6 +916,8 @@ BOOL is_inventorysp_active()
// static
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.
if (is_inventorysp_active())
{
@@ -925,11 +927,26 @@ LLInventoryPanel* LLInventoryPanel::getActiveInventoryPanel(BOOL auto_open)
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.
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)
{
LLFloaterInventory* iv = dynamic_cast<LLFloaterInventory*>(*iter);
diff --git a/indra/newview/llsidetray.cpp b/indra/newview/llsidetray.cpp
index 342b73d9c0..88e37b815f 100644
--- a/indra/newview/llsidetray.cpp
+++ b/indra/newview/llsidetray.cpp
@@ -314,6 +314,7 @@ void LLSideTrayTab::undock(LLFloater* floater_tab)
floater_tab->addChild(this);
floater_tab->setTitle(mTabTitle);
+ floater_tab->setName(getName());
// Reshape the floater if needed.
LLRect floater_rect;