Automated merge with ssh://hg.lindenlab.com/richard/viewer-experience-merge
commit
ba5c18293d
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Reference in New Issue