public void ReparentSelection(Foo parentItem, Foo insertAfterItem, List<Foo> draggedItems)
{
foreach (Foo foo in draggedItems)
{
foo.parent.children.Remove(foo);
foo.parent = parentItem;
}
if (!parentItem.hasChildren)
{
parentItem.children = new List<Foo>();
}
List<Foo> list = new List<Foo>(parentItem.children);
int index = 0;
if (parentItem == insertAfterItem)
{
index = 0;
}
else
{
int num2 = parentItem.children.IndexOf(insertAfterItem);
if (num2 >= 0)
{
index = num2 + 1;
}
else
{
Debug.LogError("Did not find insertAfterItem, should be a child of parentItem!!");
}
}
list.InsertRange(index, draggedItems);
parentItem.children = list;
}