diff options
| -rw-r--r-- | indra/newview/llinventorypanel.cpp | 27 | ||||
| -rw-r--r-- | indra/newview/llpanelmaininventory.cpp | 9 | 
2 files changed, 18 insertions, 18 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; diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp index 9944b51902..68ef13cd68 100644 --- a/indra/newview/llpanelmaininventory.cpp +++ b/indra/newview/llpanelmaininventory.cpp @@ -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)  | 
