diff --git a/indra/llui/lluictrlfactory.cpp b/indra/llui/lluictrlfactory.cpp index 625d3c63e56d54b44d5971ab12b230394d07c2aa..40b22f515a5dab353a26edf343a967b5d0de8f72 100644 --- a/indra/llui/lluictrlfactory.cpp +++ b/indra/llui/lluictrlfactory.cpp @@ -396,6 +396,7 @@ BOOL LLUICtrlFactory::getAttributeColor(LLXMLNodePtr node, const std::string& na //static void LLUICtrlFactory::setCtrlParent(LLView* view, LLView* parent, S32 tab_group) { + if (tab_group == S32_MAX) tab_group = parent->getLastTabGroup(); parent->addChild(view, tab_group); } diff --git a/indra/llui/lluictrlfactory.h b/indra/llui/lluictrlfactory.h index 6dab9521bb61a0f1c287088804d78efc660ae75a..9d26a9c9ef8903d0550b0111b051bf57e79c3449 100644 --- a/indra/llui/lluictrlfactory.h +++ b/indra/llui/lluictrlfactory.h @@ -201,7 +201,7 @@ class LLUICtrlFactory : public LLSingleton<LLUICtrlFactory> if (parent) { - S32 tab_group = params.tab_group.isProvided() ? params.tab_group() : parent->getLastTabGroup(); + S32 tab_group = params.tab_group.isProvided() ? params.tab_group() : S32_MAX; setCtrlParent(widget, parent, tab_group); } return widget; @@ -311,7 +311,8 @@ class LLUICtrlFactory : public LLSingleton<LLUICtrlFactory> T* widget = createWidget<T>(params, parent); - createChildren(widget, node, typename T::child_registry_t::instance(), output_node); + typedef typename T::child_registry_t registry_t; + createChildren(widget, node, registry_t::instance(), output_node); if (widget && !widget->postBuild()) {