private void __dragEnd(EventContext evt) { if (_agent.parent == null) //cancelled { return; } GRoot.inst.RemoveChild(_agent); object sourceData = _sourceData; _sourceData = null; GObject obj = GRoot.inst.objectUnderMouse; while (obj != null) { EventListener listener = obj.GetEventListener(DROP_EVENT); if (listener != null) { obj.RequestFocus(); listener.Call(sourceData); return; } obj = obj.parent; } }