diff options
author | Maxim Nikolenko <maximnproductengine@lindenlab.com> | 2023-04-04 15:14:02 +0300 |
---|---|---|
committer | Maxim Nikolenko <maximnproductengine@lindenlab.com> | 2023-04-04 15:14:02 +0300 |
commit | 7ccfbd7c285cc2ab0bbf569912f8e9e2d5c1df72 (patch) | |
tree | 1102d1b3ccb455e4500661fa3e420dd3189c5608 /indra/newview/llfloatersidepanelcontainer.cpp | |
parent | 77753a31aba6123696761aeeb2c535768fd1ea12 (diff) |
SL-19379 Don't switch focus to other Inventory floater when creating an item in Gallery
Diffstat (limited to 'indra/newview/llfloatersidepanelcontainer.cpp')
-rw-r--r-- | indra/newview/llfloatersidepanelcontainer.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/indra/newview/llfloatersidepanelcontainer.cpp b/indra/newview/llfloatersidepanelcontainer.cpp index dd7ce40e97..a875d33679 100644 --- a/indra/newview/llfloatersidepanelcontainer.cpp +++ b/indra/newview/llfloatersidepanelcontainer.cpp @@ -90,6 +90,29 @@ void LLFloaterSidePanelContainer::closeFloater(bool app_quitting) } } +LLFloater* LLFloaterSidePanelContainer::getTopmostInventoryFloater() +{ + LLFloater* topmost_floater = NULL; + S32 z_min = S32_MAX; + + 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) + { + LLFloater* inventory_floater = (*iter); + + if (inventory_floater && inventory_floater->getVisible()) + { + S32 z_order = gFloaterView->getZOrder(inventory_floater); + if (z_order < z_min) + { + z_min = z_order; + topmost_floater = inventory_floater; + } + } + } + return topmost_floater; +} + LLPanel* LLFloaterSidePanelContainer::openChildPanel(const std::string& panel_name, const LLSD& params) { LLView* view = findChildView(panel_name, true); |