diff --git a/api/Avalonia.nupkg.xml b/api/Avalonia.nupkg.xml
index 15e956bdc6..272f5d71c7 100644
--- a/api/Avalonia.nupkg.xml
+++ b/api/Avalonia.nupkg.xml
@@ -415,6 +415,24 @@
baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+ CP0002
+ M:Avalonia.Controls.Primitives.OverlayPopupHost.ConfigurePosition(Avalonia.Visual,Avalonia.Controls.PlacementMode,Avalonia.Point,Avalonia.Controls.Primitives.PopupPositioning.PopupAnchor,Avalonia.Controls.Primitives.PopupPositioning.PopupGravity,Avalonia.Controls.Primitives.PopupPositioning.PopupPositionerConstraintAdjustment,System.Nullable{Avalonia.Rect})
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0002
+ M:Avalonia.Controls.Primitives.OverlayPopupHost.CreatePopupHost(Avalonia.Visual,Avalonia.IAvaloniaDependencyResolver)
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0002
+ M:Avalonia.Controls.Primitives.PopupRoot.ConfigurePosition(Avalonia.Visual,Avalonia.Controls.PlacementMode,Avalonia.Point,Avalonia.Controls.Primitives.PopupPositioning.PopupAnchor,Avalonia.Controls.Primitives.PopupPositioning.PopupGravity,Avalonia.Controls.Primitives.PopupPositioning.PopupPositionerConstraintAdjustment,System.Nullable{Avalonia.Rect})
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
CP0002
M:Avalonia.Controls.Primitives.TextSearch.GetText(Avalonia.Controls.Control)
@@ -817,6 +835,24 @@
baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
+ CP0002
+ M:Avalonia.Controls.Primitives.OverlayPopupHost.ConfigurePosition(Avalonia.Visual,Avalonia.Controls.PlacementMode,Avalonia.Point,Avalonia.Controls.Primitives.PopupPositioning.PopupAnchor,Avalonia.Controls.Primitives.PopupPositioning.PopupGravity,Avalonia.Controls.Primitives.PopupPositioning.PopupPositionerConstraintAdjustment,System.Nullable{Avalonia.Rect})
+ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
+
+ CP0002
+ M:Avalonia.Controls.Primitives.OverlayPopupHost.CreatePopupHost(Avalonia.Visual,Avalonia.IAvaloniaDependencyResolver)
+ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
+
+ CP0002
+ M:Avalonia.Controls.Primitives.PopupRoot.ConfigurePosition(Avalonia.Visual,Avalonia.Controls.PlacementMode,Avalonia.Point,Avalonia.Controls.Primitives.PopupPositioning.PopupAnchor,Avalonia.Controls.Primitives.PopupPositioning.PopupGravity,Avalonia.Controls.Primitives.PopupPositioning.PopupPositionerConstraintAdjustment,System.Nullable{Avalonia.Rect})
+ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
CP0002
M:Avalonia.Controls.Primitives.TextSearch.GetText(Avalonia.Controls.Control)
diff --git a/src/Avalonia.Base/Diagnostics/ObsoletionMessages.cs b/src/Avalonia.Base/Diagnostics/ObsoletionMessages.cs
deleted file mode 100644
index bfada91abe..0000000000
--- a/src/Avalonia.Base/Diagnostics/ObsoletionMessages.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Avalonia.Diagnostics;
-
-internal static class ObsoletionMessages
-{
- public const string MayBeRemovedInAvalonia12 = "This API may be removed in Avalonia 12. If you depend on this API, please open an issue with details of your use-case.";
-}
diff --git a/src/Avalonia.Controls/Primitives/IPopupHost.cs b/src/Avalonia.Controls/Primitives/IPopupHost.cs
index c4f992363e..7ed87682a6 100644
--- a/src/Avalonia.Controls/Primitives/IPopupHost.cs
+++ b/src/Avalonia.Controls/Primitives/IPopupHost.cs
@@ -1,11 +1,9 @@
using System;
using Avalonia.Controls.Presenters;
using Avalonia.Controls.Primitives.PopupPositioning;
-using Avalonia.Diagnostics;
using Avalonia.Input;
using Avalonia.Media;
using Avalonia.Metadata;
-using Avalonia.VisualTree;
namespace Avalonia.Controls.Primitives
{
@@ -17,8 +15,7 @@ namespace Avalonia.Controls.Primitives
/// () or an which is created
/// on an .
///
- [NotClientImplementable]
- [Unstable(ObsoletionMessages.MayBeRemovedInAvalonia12)]
+ [PrivateApi]
public interface IPopupHost : IDisposable, IFocusScope
{
///
diff --git a/src/Avalonia.Controls/Primitives/OverlayPopupHost.cs b/src/Avalonia.Controls/Primitives/OverlayPopupHost.cs
index 3e4fee20b7..d52e0e4d98 100644
--- a/src/Avalonia.Controls/Primitives/OverlayPopupHost.cs
+++ b/src/Avalonia.Controls/Primitives/OverlayPopupHost.cs
@@ -121,16 +121,6 @@ namespace Avalonia.Controls.Primitives
// Nothing to do here: overlay popups are implemented inside the window.
}
- [Unstable(ObsoletionMessages.MayBeRemovedInAvalonia12)]
- public void ConfigurePosition(Visual target, PlacementMode placement, Point offset,
- PopupAnchor anchor = PopupAnchor.None, PopupGravity gravity = PopupGravity.None,
- PopupPositionerConstraintAdjustment constraintAdjustment = PopupPositionerConstraintAdjustment.All,
- Rect? rect = null)
- {
- ((IPopupHost)this).ConfigurePosition(new PopupPositionRequest(target, placement, offset, anchor, gravity,
- constraintAdjustment, rect, null));
- }
-
///
void IPopupHost.ConfigurePosition(PopupPositionRequest positionRequest)
{
@@ -191,12 +181,8 @@ namespace Avalonia.Controls.Primitives
double IManagedPopupPositionerPopup.Scaling => 1;
- // TODO12: mark PrivateAPI or internal.
- [Unstable("PopupHost is considered an internal API. Use Popup or any Popup-based controls (Flyout, Tooltip) instead.")]
- public static IPopupHost CreatePopupHost(Visual target, IAvaloniaDependencyResolver? dependencyResolver)
- => CreatePopupHost(target, dependencyResolver, false);
-
- internal static IPopupHost CreatePopupHost(Visual target, IAvaloniaDependencyResolver? dependencyResolver, bool shouldUseOverlayLayer)
+ [PrivateApi]
+ public static IPopupHost CreatePopupHost(Visual target, IAvaloniaDependencyResolver? dependencyResolver, bool shouldUseOverlayLayer)
{
if (!shouldUseOverlayLayer)
{
diff --git a/src/Avalonia.Controls/Primitives/PopupPositioning/IPopupPositioner.cs b/src/Avalonia.Controls/Primitives/PopupPositioning/IPopupPositioner.cs
index a0b853f2dc..82dead1ed5 100644
--- a/src/Avalonia.Controls/Primitives/PopupPositioning/IPopupPositioner.cs
+++ b/src/Avalonia.Controls/Primitives/PopupPositioning/IPopupPositioner.cs
@@ -66,7 +66,6 @@ namespace Avalonia.Controls.Primitives.PopupPositioning
/// requirement that a popup must intersect with or be at least partially adjacent to its parent
/// surface.
///
- [Unstable(ObsoletionMessages.MayBeRemovedInAvalonia12)]
public record struct PopupPositionerParameters
{
private PopupGravity _gravity;
diff --git a/src/Avalonia.Controls/Primitives/PopupPositioning/PopupPositionRequest.cs b/src/Avalonia.Controls/Primitives/PopupPositioning/PopupPositionRequest.cs
index 35e15e3057..ab1002cb9b 100644
--- a/src/Avalonia.Controls/Primitives/PopupPositioning/PopupPositionRequest.cs
+++ b/src/Avalonia.Controls/Primitives/PopupPositioning/PopupPositionRequest.cs
@@ -4,7 +4,6 @@ using Avalonia.Metadata;
namespace Avalonia.Controls.Primitives.PopupPositioning;
[PrivateApi]
-[Unstable(ObsoletionMessages.MayBeRemovedInAvalonia12)]
public class PopupPositionRequest
{
internal PopupPositionRequest(Visual target, PlacementMode placement)
diff --git a/src/Avalonia.Controls/Primitives/PopupRoot.cs b/src/Avalonia.Controls/Primitives/PopupRoot.cs
index f88ed0b93b..6dc4627f0c 100644
--- a/src/Avalonia.Controls/Primitives/PopupRoot.cs
+++ b/src/Avalonia.Controls/Primitives/PopupRoot.cs
@@ -136,17 +136,6 @@ namespace Avalonia.Controls.Primitives
}
}
- [Unstable(ObsoletionMessages.MayBeRemovedInAvalonia12)]
- public void ConfigurePosition(Visual target, PlacementMode placement, Point offset,
- PopupAnchor anchor = PopupAnchor.None,
- PopupGravity gravity = PopupGravity.None,
- PopupPositionerConstraintAdjustment constraintAdjustment = PopupPositionerConstraintAdjustment.All,
- Rect? rect = null)
- {
- ((IPopupHost)this).ConfigurePosition(new PopupPositionRequest(target, placement, offset, anchor, gravity,
- constraintAdjustment, rect, null));
- }
-
void IPopupHost.ConfigurePosition(PopupPositionRequest request)
{
_popupPositionRequest = request;