public virtual bool RemoveItem (AbstractDockItem item) { if (!ItemCanBeRemoved (item)) return false; IEnumerable<AbstractDockItem> saved = Items.Where (adi => adi != item).ToArray (); Items = saved; item.Dispose (); return true; }
public override bool RemoveItem (AbstractDockItem item) { if (!items.ContainsValue (item)) return false; string key = null; foreach (KeyValuePair<string, AbstractDockItem> kvp in items) if (kvp.Value == item) { key = kvp.Key; break; } // this should never happen... if (key == null) return false; items.Remove (key); Items = InternalItems; item.Dispose (); // this is so if the launcher has open windows and we manage those... UpdateTransientItems (); return true; }