@@ -448,6 +448,8 @@ namespace FlaxEngine.GUI
|
|||||||
internal virtual void AddChildInternal(Control child)
|
internal virtual void AddChildInternal(Control child)
|
||||||
{
|
{
|
||||||
Assert.IsNotNull(child, "Invalid control.");
|
Assert.IsNotNull(child, "Invalid control.");
|
||||||
|
if (Parent == child)
|
||||||
|
throw new InvalidOperationException();
|
||||||
|
|
||||||
// Add child
|
// Add child
|
||||||
_children.Add(child);
|
_children.Add(child);
|
||||||
@@ -820,13 +822,14 @@ namespace FlaxEngine.GUI
|
|||||||
protected virtual void DrawChildren()
|
protected virtual void DrawChildren()
|
||||||
{
|
{
|
||||||
// Draw all visible child controls
|
// Draw all visible child controls
|
||||||
|
var children = _children;
|
||||||
if (_cullChildren)
|
if (_cullChildren)
|
||||||
{
|
{
|
||||||
Render2D.PeekClip(out var globalClipping);
|
Render2D.PeekClip(out var globalClipping);
|
||||||
Render2D.PeekTransform(out var globalTransform);
|
Render2D.PeekTransform(out var globalTransform);
|
||||||
for (int i = 0; i < _children.Count; i++)
|
for (int i = 0; i < children.Count; i++)
|
||||||
{
|
{
|
||||||
var child = _children[i];
|
var child = children[i];
|
||||||
if (child.Visible)
|
if (child.Visible)
|
||||||
{
|
{
|
||||||
Matrix3x3.Multiply(ref child._cachedTransform, ref globalTransform, out var globalChildTransform);
|
Matrix3x3.Multiply(ref child._cachedTransform, ref globalTransform, out var globalChildTransform);
|
||||||
@@ -842,9 +845,9 @@ namespace FlaxEngine.GUI
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
for (int i = 0; i < _children.Count; i++)
|
for (int i = 0; i < children.Count; i++)
|
||||||
{
|
{
|
||||||
var child = _children[i];
|
var child = children[i];
|
||||||
if (child.Visible)
|
if (child.Visible)
|
||||||
{
|
{
|
||||||
Render2D.PushTransform(ref child._cachedTransform);
|
Render2D.PushTransform(ref child._cachedTransform);
|
||||||
|
|||||||
@@ -58,10 +58,11 @@ namespace FlaxEngine
|
|||||||
if (containerControl != null && IsActiveInHierarchy)
|
if (containerControl != null && IsActiveInHierarchy)
|
||||||
{
|
{
|
||||||
var children = ChildrenCount;
|
var children = ChildrenCount;
|
||||||
|
var parent = Parent;
|
||||||
for (int i = 0; i < children; i++)
|
for (int i = 0; i < children; i++)
|
||||||
{
|
{
|
||||||
var child = GetChild(i) as UIControl;
|
var child = GetChild(i) as UIControl;
|
||||||
if (child != null && child.IsActiveInHierarchy && child.HasControl)
|
if (child != null && child.IsActiveInHierarchy && child.HasControl && child != parent)
|
||||||
{
|
{
|
||||||
child.Control.Parent = containerControl;
|
child.Control.Parent = containerControl;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user