Automated merge with ssh://hg.lindenlab.com/richard/viewer-experience-merge

meow-7.2.2
Richard Linden 2011-12-08 11:03:38 -08:00
commit ba5c18293d
2 changed files with 18 additions and 18 deletions

View File

@ -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;

View File

@ -28,6 +28,7 @@
#include "llpanelmaininventory.h"
#include "llagent.h"
#include "llagentcamera.h"
#include "llavataractions.h"
#include "lldndbutton.h"
#include "lleconomy.h"
@ -294,7 +295,13 @@ void LLPanelMainInventory::closeAllFolders()
void LLPanelMainInventory::newWindow()
{
LLFloaterInventory::showAgentInventory();
static S32 instance_num = 0;
instance_num = (instance_num + 1) % S32_MAX;
if (!gAgentCamera.cameraMouselook())
{
LLFloaterReg::showTypedInstance<LLFloaterSidePanelContainer>("inventory", LLSD(instance_num));
}
}
void LLPanelMainInventory::doCreate(const LLSD& userdata)