Browse Source

Move Screens property to WindowBase since they are in IWindowBaseImpl anyway

pre-lifetime-fixes
Nikita Tsukanov 7 years ago
parent
commit
425edab298
  1. 2
      src/Avalonia.Controls/Primitives/PopupRoot.cs
  2. 5
      src/Avalonia.Controls/Screens.cs
  3. 3
      src/Avalonia.Controls/Window.cs
  4. 3
      src/Avalonia.Controls/WindowBase.cs

2
src/Avalonia.Controls/Primitives/PopupRoot.cs

@ -80,7 +80,7 @@ namespace Avalonia.Controls.Primitives
/// </summary>
public void SnapInsideScreenEdges()
{
var screen = Application.Current.MainWindow?.Screens.ScreenFromPoint(Position);
var screen = (VisualRoot as WindowBase)?.Screens?.ScreenFromPoint(Position);
if (screen != null)
{

5
src/Avalonia.Controls/Screens.cs

@ -1,4 +1,5 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using System.Linq;
using Avalonia.Platform;
using Avalonia.Utilities;
@ -11,7 +12,7 @@ namespace Avalonia.Controls
private readonly IScreenImpl _iScreenImpl;
public int ScreenCount => _iScreenImpl.ScreenCount;
public IReadOnlyList<Screen> All => _iScreenImpl?.AllScreens;
public IReadOnlyList<Screen> All => _iScreenImpl?.AllScreens ?? Array.Empty<Screen>();
public Screen Primary => All.FirstOrDefault(x => x.Primary);
public Screens(IScreenImpl iScreenImpl)

3
src/Avalonia.Controls/Window.cs

@ -140,7 +140,6 @@ namespace Avalonia.Controls
impl.Closing = HandleClosing;
impl.WindowStateChanged = HandleWindowStateChanged;
_maxPlatformClientSize = PlatformImpl?.MaxClientSize ?? default(Size);
Screens = new Screens(PlatformImpl?.Screen);
}
/// <inheritdoc/>
@ -157,8 +156,6 @@ namespace Avalonia.Controls
remove { _nameScope.Unregistered -= value; }
}
public Screens Screens { get; private set; }
/// <summary>
/// Gets the platform-specific window implementation.
/// </summary>

3
src/Avalonia.Controls/WindowBase.cs

@ -63,6 +63,7 @@ namespace Avalonia.Controls
public WindowBase(IWindowBaseImpl impl, IAvaloniaDependencyResolver dependencyResolver) : base(impl, dependencyResolver)
{
Screens = new Screens(PlatformImpl?.Screen);
impl.Activated = HandleActivated;
impl.Deactivated = HandleDeactivated;
impl.PositionChanged = HandlePositionChanged;
@ -108,6 +109,8 @@ namespace Avalonia.Controls
impl.Position = value;
}
}
public Screens Screens { get; private set; }
/// <summary>
/// Whether an auto-size operation is in progress.

Loading…
Cancel
Save