Fix element detachment logic

fix-osga-rotate-wildly
uramer 10 months ago
parent 2f40491065
commit 68ed771816

@ -99,15 +99,6 @@ namespace LuaUi
element->create(depth + 1);
WidgetExtension* root = element->mRoot;
assert(root);
WidgetExtension* parent = root->getParent();
if (parent)
{
auto children = parent->children();
std::erase(children, root);
parent->setChildren(children);
root->widget()->detachFromWidget();
}
root->updateCoord();
return root;
}

@ -100,6 +100,8 @@ namespace LuaUi
void WidgetExtension::attach(WidgetExtension* ext)
{
if (ext->mParent != this)
ext->detachFromParent();
ext->mParent = this;
ext->mTemplateChild = false;
ext->widget()->attachToWidget(mSlot->widget());
@ -114,7 +116,13 @@ namespace LuaUi
void WidgetExtension::detachFromParent()
{
mParent = nullptr;
if (mParent)
{
auto children = mParent->children();
std::erase(children, this);
mParent->setChildren(children);
mParent = nullptr;
}
widget()->detachFromWidget();
}

Loading…
Cancel
Save