diff --git a/src/Avalonia.Base/Animation/TransitionObservableBase.cs b/src/Avalonia.Base/Animation/TransitionObservableBase.cs
index 19d252723d..92462dc537 100644
--- a/src/Avalonia.Base/Animation/TransitionObservableBase.cs
+++ b/src/Avalonia.Base/Animation/TransitionObservableBase.cs
@@ -10,7 +10,7 @@ namespace Avalonia.Animation
/// Provides base for observables implementing transitions.
///
/// Type of the transitioned value.
- public abstract class TransitionObservableBase : SingleSubscriberObservableBase, IObserver
+ internal abstract class TransitionObservableBase : SingleSubscriberObservableBase, IObserver
{
private readonly IEasing _easing;
private readonly IObservable _progress;
diff --git a/src/Avalonia.Base/Layout/Layoutable.cs b/src/Avalonia.Base/Layout/Layoutable.cs
index 08f327d048..f64c26ddf8 100644
--- a/src/Avalonia.Base/Layout/Layoutable.cs
+++ b/src/Avalonia.Base/Layout/Layoutable.cs
@@ -205,6 +205,15 @@ namespace Avalonia.Layout
}
}
+ ///
+ /// Executes a layout pass.
+ ///
+ ///
+ /// You should not usually need to call this method explictly, the layout manager will
+ /// schedule layout passes itself.
+ ///
+ public void UpdateLayout() => (this.GetVisualRoot() as ILayoutRoot)?.LayoutManager?.ExecuteLayoutPass();
+
///
/// Gets or sets the width of the element.
///
diff --git a/src/Avalonia.Controls/TopLevel.cs b/src/Avalonia.Controls/TopLevel.cs
index b51222a2fe..9c88fb6844 100644
--- a/src/Avalonia.Controls/TopLevel.cs
+++ b/src/Avalonia.Controls/TopLevel.cs
@@ -374,15 +374,6 @@ namespace Avalonia.Controls
ILayoutManager ILayoutRoot.LayoutManager => LayoutManager;
- ///
- /// Executes a layout pass.
- ///
- ///
- /// You should not usually need to call this method explictly, the layout manager will
- /// schedule layout passes itself.
- ///
- public void UpdateLayout() => LayoutManager?.ExecuteLayoutPass();
-
///
/// Gets the platform-specific window implementation.
///