public override void ValidateLayout() { Profiler.BeginSample(m_ProfileLayoutName); m_VisualTreeUpdater.UpdateVisualTreePhase(VisualTreeUpdatePhase.Styles); m_VisualTreeUpdater.UpdateVisualTreePhase(VisualTreeUpdatePhase.Layout); m_VisualTreeUpdater.UpdateVisualTreePhase(VisualTreeUpdatePhase.TransformClip); Profiler.EndSample(); }
public override void ValidateLayout() { // Reentrancy proofing: ValidateLayout() could be in the code path of updaters. // Actual case: TransformClip update phase recomputes elements under mouse, which does a pick, which validates layout. // Updaters use version numbers for early exit, but it may happen that an updater invalidates a subsequent updater. if (!m_ValidatingLayout) { m_ValidatingLayout = true; Profiler.BeginSample(m_ProfileLayoutName); m_VisualTreeUpdater.UpdateVisualTreePhase(VisualTreeUpdatePhase.Styles); m_VisualTreeUpdater.UpdateVisualTreePhase(VisualTreeUpdatePhase.Layout); m_VisualTreeUpdater.UpdateVisualTreePhase(VisualTreeUpdatePhase.TransformClip); Profiler.EndSample(); m_ValidatingLayout = false; } }