/// <summary> /// /// </summary> /// <param name="target"></param> /// <param name="skipDisplayList"></param> public void ValidateClient(InvalidationManagerClient target, bool skipDisplayList = false) { InvalidationManagerClient lastCurrentObject = _currentObject; int oldTargetLevel = _targetLevel; if (MaxHDepth == _targetLevel) { _targetLevel = target.NestLevel; } _done = false; while (!_done) { // assume we won't find anything _done = true; /** * 1) Validate properties * */ _propertyInvalidator.ValidateClient(target, ref _currentObject); /** * 2) Validate size * */ //InvalidationHelper.Log("## Validate size", target); _sizeInvalidator.ValidateClient(target, ref _currentObject); /** * 3) Validate display list * */ if (!skipDisplayList) { _displayListInvalidator.ValidateClient(target, ref _currentObject); } /** * 4) Validate transforms * */ _transformInvalidator.ValidateClient(target, ref _currentObject); // moved 20130807 /** * 5) Validate events * */ _eventInvalidator.ValidateClient(target, ref _currentObject); } if (MaxHDepth == oldTargetLevel) { _targetLevel = MaxHDepth; if (!skipDisplayList) { _obj = _updateCompleteQueue.RemoveLargestChild(target); while (null != _obj) { if (!_obj.Initialized) { _obj.Initialized = true; } if (_obj.HasEventListener(FrameworkEvent.UPDATE_COMPLETE)) { _obj.DispatchEvent(new FrameworkEvent(FrameworkEvent.UPDATE_COMPLETE)); } _obj.UpdateFlag = false; _obj = _updateCompleteQueue.RemoveLargestChild(target); } } } _currentObject = lastCurrentObject; }