internal void RevertMergeItem (ToolStripItem item)
{
int index = 0;
// Remove it from it's current Parent
if (item.Parent != null && item.Parent != this) {
if (item.Parent is ToolStripOverflow)
(item.Parent as ToolStripOverflow).ParentToolStrip.Items.RemoveNoOwnerOrLayout (item);
else
item.Parent.Items.RemoveNoOwnerOrLayout (item);
item.Parent = item.Owner;
}
// Find where the item was before the merge
index = item.Owner.pre_merge_items.IndexOf (item);
// Find the first pre-merge item that was after this item, that
// is currently in the Items collection. Insert our item before
// that one.
for (int i = index; i < this.pre_merge_items.Count; i++) {
if (this.Items.Contains (this.pre_merge_items[i])) {
item.Owner.Items.InsertNoOwnerOrLayout (this.Items.IndexOf (this.pre_merge_items[i]), item);
return;
}
}
// There aren't any items that are supposed to be after this item,
// so just append it to the end.
item.Owner.Items.AddNoOwnerOrLayout (item);
}
#endregion