Browse Source

Updated more XxxRoot usages

feature/presentation-source-2
Nikita Tsukanov 1 month ago
parent
commit
52865054be
  1. 2
      src/Avalonia.Controls/IMenu.cs
  2. 2
      src/Avalonia.Controls/MenuBase.cs
  3. 2
      src/Avalonia.Controls/Platform/DefaultMenuInteractionHandler.cs
  4. 2
      src/Avalonia.Controls/Remote/Server/RemoteServerTopLevelImpl.cs
  5. 4
      src/Avalonia.X11/X11Window.cs
  6. 2
      tests/Avalonia.Controls.UnitTests/Primitives/PopupTests.cs
  7. 4
      tests/Avalonia.Controls.UnitTests/ToolTipTests.cs

2
src/Avalonia.Controls/IMenu.cs

@ -23,6 +23,6 @@ namespace Avalonia.Controls
/// <summary>
/// Gets the root of the visual tree, if the control is attached to a visual tree.
/// </summary>
TopLevel? VisualRoot { get; }
TopLevel? TopLevel { get; }
}
}

2
src/Avalonia.Controls/MenuBase.cs

@ -75,7 +75,7 @@ namespace Avalonia.Controls
/// <inheritdoc/>
IMenuInteractionHandler IMenu.InteractionHandler => InteractionHandler;
TopLevel? IMenu.VisualRoot => TopLevel.GetTopLevel(this);
TopLevel? IMenu.TopLevel => TopLevel.GetTopLevel(this);
/// <inheritdoc/>
IMenuItem? IMenuElement.SelectedItem

2
src/Avalonia.Controls/Platform/DefaultMenuInteractionHandler.cs

@ -300,7 +300,7 @@ namespace Avalonia.Controls.Platform
Menu.AddHandler(MenuItem.PointerExitedItemEvent, PointerExited);
Menu.AddHandler(InputElement.PointerMovedEvent, PointerMoved);
_root = Menu.VisualRoot;
_root = Menu.TopLevel;
if (_root is not null)
{

2
src/Avalonia.Controls/Remote/Server/RemoteServerTopLevelImpl.cs

@ -265,7 +265,7 @@ namespace Avalonia.Controls.Remote.Server
protected virtual Size Measure(Size constraint)
{
var l = (Layoutable) InputRoot!;
var l = (Layoutable)InputRoot!.RootElement!;
l.Measure(constraint);
return l.DesiredSize;
}

4
src/Avalonia.X11/X11Window.cs

@ -267,7 +267,9 @@ namespace Avalonia.X11
? DBusSystemDialog.TryCreateAsync(Handle)
: Task.FromResult<IStorageProvider?>(null),
() => GtkSystemDialog.TryCreate(this),
() => Task.FromResult(InputRoot is TopLevel tl
// TODO: This will be incompatible with "root element is not a TopLevel" scenarios,
// we should probably have a separate API for this
() => Task.FromResult(InputRoot.RootElement is TopLevel tl
? (IStorageProvider?)new ManagedStorageProvider(tl)
: null)
});

2
tests/Avalonia.Controls.UnitTests/Primitives/PopupTests.cs

@ -1170,7 +1170,7 @@ namespace Avalonia.Controls.UnitTests.Primitives
var ev = new PointerPressedEventArgs(
popupContent,
pointer,
(PopupRoot)popupContent.VisualRoot!,
(PopupRoot)TopLevel.GetTopLevel(popupContent)!,
new Point(50 , 50),
0,
new PointerPointProperties(RawInputModifiers.None, PointerUpdateKind.LeftButtonPressed),

4
tests/Avalonia.Controls.UnitTests/ToolTipTests.cs

@ -38,7 +38,7 @@ namespace Avalonia.Controls.UnitTests
{
_toolTipOpenSubscription = ToolTip.IsOpenProperty.Changed.Subscribe(new AnonymousObserver<AvaloniaPropertyChangedEventArgs<bool>>(e =>
{
if (e.Sender is Visual { VisualRoot: TopLevel {} root } visual)
if (e.Sender is Visual visual && TopLevel.GetTopLevel(visual) is {} root)
OverlayLayer.GetOverlayLayer(visual)?.Measure(root.ClientSize);
}));
}
@ -577,7 +577,7 @@ namespace Avalonia.Controls.UnitTests
hitTesterMock.Setup(m => m.HitTestFirst(point, window, It.IsAny<Func<Visual, bool>>()))
.Returns(control);
var root = (IInputRoot?)control?.VisualRoot?.PresentationSource ?? window.InputRoot;
var root = control?.GetInputRoot() ?? window.InputRoot;
var timestamp = (ulong)DateTime.Now.Ticks;
windowImpl.Object.Input!(new RawPointerEventArgs(s_mouseDevice, timestamp, root,

Loading…
Cancel
Save