Browse Source

Fix Screens.ScreenFromWindow API

pull/11191/head
Max Katz 4 years ago
parent
commit
8ba233b23f
  1. 12
      src/Avalonia.Controls/Screens.cs
  2. 6
      src/Avalonia.Controls/Window.cs

12
src/Avalonia.Controls/Screens.cs

@ -2,7 +2,6 @@
using System.Collections.Generic;
using System.Linq;
using Avalonia.Platform;
using Avalonia.VisualTree;
#nullable enable
@ -43,6 +42,17 @@ namespace Avalonia.Controls
return _iScreenImpl.ScreenFromRect(bounds);
}
public Screen? ScreenFromWindow(WindowBase window)
{
if (window.PlatformImpl is null)
{
throw new ObjectDisposedException("Window platform implementation was already disposed.");
}
return _iScreenImpl.ScreenFromWindow(window.PlatformImpl);
}
[Obsolete("Use ScreenFromWindow(WindowBase) overload.")]
public Screen? ScreenFromWindow(IWindowBaseImpl window)
{
return _iScreenImpl.ScreenFromWindow(window);

6
src/Avalonia.Controls/Window.cs

@ -713,7 +713,7 @@ namespace Avalonia.Controls
Owner = owner;
owner?.AddChild(this, false);
SetWindowStartupLocation(owner?.PlatformImpl);
SetWindowStartupLocation(owner);
PlatformImpl?.Show(ShowActivated, false);
Renderer.Start();
@ -789,7 +789,7 @@ namespace Avalonia.Controls
Owner = owner;
owner.AddChild(this, true);
SetWindowStartupLocation(owner.PlatformImpl);
SetWindowStartupLocation(owner);
PlatformImpl?.Show(ShowActivated, true);
@ -870,7 +870,7 @@ namespace Avalonia.Controls
}
}
private void SetWindowStartupLocation(IWindowBaseImpl? owner = null)
private void SetWindowStartupLocation(Window? owner = null)
{
var startupLocation = WindowStartupLocation;

Loading…
Cancel
Save