diff --git a/src/Avalonia.Base/Input/IInputRoot.cs b/src/Avalonia.Base/Input/IInputRoot.cs
index d0921eea2d..f358658005 100644
--- a/src/Avalonia.Base/Input/IInputRoot.cs
+++ b/src/Avalonia.Base/Input/IInputRoot.cs
@@ -1,4 +1,5 @@
using Avalonia.Metadata;
+using Avalonia.Platform;
namespace Avalonia.Input
{
@@ -17,10 +18,18 @@ namespace Avalonia.Input
/// Gets focus manager of the root.
///
///
- /// Focus manager can be null only if application wasn't initialized yet.
+ /// Focus manager can be null only if window wasn't initialized yet.
///
IFocusManager? FocusManager { get; }
+ ///
+ /// Represents a contract for accessing platform-specific settings and information.
+ ///
+ ///
+ /// Focus manager can be null only if window wasn't initialized yet.
+ ///
+ IPlatformSettings? PlatformSettings { get; }
+
///
/// Gets or sets the input element that the pointer is currently over.
///
diff --git a/src/Avalonia.Base/Platform/DefaultPlatformSettings.cs b/src/Avalonia.Base/Platform/DefaultPlatformSettings.cs
index 08fcdb50aa..54528efec1 100644
--- a/src/Avalonia.Base/Platform/DefaultPlatformSettings.cs
+++ b/src/Avalonia.Base/Platform/DefaultPlatformSettings.cs
@@ -1,12 +1,14 @@
using System;
using Avalonia.Input;
using Avalonia.Media;
+using Avalonia.Metadata;
namespace Avalonia.Platform
{
///
/// A default implementation of for platforms.
///
+ [PrivateApi]
public class DefaultPlatformSettings : IPlatformSettings
{
public virtual Size GetTapSize(PointerType type)
diff --git a/src/Avalonia.Base/Platform/IPlatformSettings.cs b/src/Avalonia.Base/Platform/IPlatformSettings.cs
index b167cf0edc..c5d46cb7e6 100644
--- a/src/Avalonia.Base/Platform/IPlatformSettings.cs
+++ b/src/Avalonia.Base/Platform/IPlatformSettings.cs
@@ -4,7 +4,11 @@ using Avalonia.Metadata;
namespace Avalonia.Platform
{
- [Unstable]
+ ///
+ /// The interface represents a contract for accessing platform-specific settings and information.
+ /// Some of these settings might be changed by used globally in the OS in runtime.
+ ///
+ [NotClientImplementable]
public interface IPlatformSettings
{
///
diff --git a/src/Avalonia.Controls/TopLevel.cs b/src/Avalonia.Controls/TopLevel.cs
index ec6b3f7421..be9df4188d 100644
--- a/src/Avalonia.Controls/TopLevel.cs
+++ b/src/Avalonia.Controls/TopLevel.cs
@@ -487,6 +487,9 @@ namespace Avalonia.Controls
///
public IFocusManager? FocusManager => AvaloniaLocator.Current.GetService();
+ ///
+ public IPlatformSettings? PlatformSettings => AvaloniaLocator.Current.GetService();
+
///
Point IRenderRoot.PointToClient(PixelPoint p)
{