System.Windows.Forms.ToolStripManager.RevertMergeItem C# (CSharp) Method

RevertMergeItem() private method

private RevertMergeItem ( ToolStripItem item ) : void
item ToolStripItem
return void
		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