//-------------------------------------------------------------------------------------
void EventDispatcher::detach(EventDispatcher & childDispatcher)
{
	childDispatcher.detachFrom(*this);

	ChildDispatchers & d = childDispatchers_;
	d.erase(std::remove(d.begin(), d.end(), &childDispatcher), d.end());
}