private void OnChildRemoved (Accessible sender, Accessible child)
{
Element childElement = Element.GetElement (child, false);
if (childElement == null)
return;
Element parentElement;
parentElement = childElement.Parent as Element;
if (parentElement != null) {
if (parentElement.extraChildren.IndexOf (childElement) != -1)
parentElement.extraChildren.Remove (childElement);
RaiseStructureChangedEvent (parentElement, StructureChangeType.ChildrenInvalidated);
RaiseStructureChangedEvent (parentElement, StructureChangeType.ChildRemoved);
}
if (sender == Desktop.Instance || sender.Role == Role.Application)
OnRootElementsChanged ();
}