Browse Source

Make FrameSize nullable

pull/6076/head
Nathan Garside 5 years ago
parent
commit
bccbf0570c
  1. 2
      src/Android/Avalonia.Android/Platform/SkiaPlatform/TopLevelImpl.cs
  2. 4
      src/Avalonia.Controls/ApiCompatBaseline.txt
  3. 2
      src/Avalonia.Controls/Embedding/Offscreen/OffscreenTopLevelImpl.cs
  4. 2
      src/Avalonia.Controls/Platform/ITopLevelImpl.cs
  5. 8
      src/Avalonia.Controls/TopLevel.cs
  6. 2
      src/Avalonia.DesignerSupport/Remote/Stubs.cs
  7. 2
      src/Avalonia.Headless/HeadlessWindowImpl.cs
  8. 2
      src/Avalonia.Native/WindowImplBase.cs
  9. 4
      src/Avalonia.X11/X11Window.cs
  10. 2
      src/Linux/Avalonia.LinuxFramebuffer/FramebufferToplevelImpl.cs
  11. 2
      src/Windows/Avalonia.Win32.Interop/Wpf/WpfTopLevelImpl.cs
  12. 2
      src/Windows/Avalonia.Win32/WindowImpl.cs
  13. 2
      src/iOS/Avalonia.iOS/AvaloniaView.cs
  14. 1
      tests/Avalonia.UnitTests/MockWindowingPlatform.cs

2
src/Android/Avalonia.Android/Platform/SkiaPlatform/TopLevelImpl.cs

@ -55,7 +55,7 @@ namespace Avalonia.Android.Platform.SkiaPlatform
public virtual Size ClientSize => Size.ToSize(RenderScaling);
public Size FrameSize => ClientSize;
public Size? FrameSize => null;
public IMouseDevice MouseDevice { get; } = new MouseDevice();

4
src/Avalonia.Controls/ApiCompatBaseline.txt

@ -11,6 +11,6 @@ EnumValuesMustMatch : Enum value 'Avalonia.Platform.ExtendClientAreaChromeHints
InterfacesShouldHaveSameMembers : Interface member 'public void Avalonia.Platform.ITopLevelImpl.SetCursor(Avalonia.Platform.ICursorImpl)' is present in the implementation but not in the contract.
InterfacesShouldHaveSameMembers : Interface member 'public void Avalonia.Platform.ITopLevelImpl.SetCursor(Avalonia.Platform.IPlatformHandle)' is present in the contract but not in the implementation.
MembersMustExist : Member 'public void Avalonia.Platform.ITopLevelImpl.SetCursor(Avalonia.Platform.IPlatformHandle)' does not exist in the implementation but it does exist in the contract.
InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Size Avalonia.Platform.ITopLevelImpl.FrameSize' is present in the implementation but not in the contract.
InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Size Avalonia.Platform.ITopLevelImpl.FrameSize.get()' is present in the implementation but not in the contract.
InterfacesShouldHaveSameMembers : Interface member 'public System.Nullable<Avalonia.Size> Avalonia.Platform.ITopLevelImpl.FrameSize' is present in the implementation but not in the contract.
InterfacesShouldHaveSameMembers : Interface member 'public System.Nullable<Avalonia.Size> Avalonia.Platform.ITopLevelImpl.FrameSize.get()' is present in the implementation but not in the contract.
Total Issues: 14

2
src/Avalonia.Controls/Embedding/Offscreen/OffscreenTopLevelImpl.cs

@ -35,7 +35,7 @@ namespace Avalonia.Controls.Embedding.Offscreen
}
}
public Size FrameSize => _clientSize;
public Size? FrameSize => null;
public double RenderScaling
{

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

@ -25,7 +25,7 @@ namespace Avalonia.Platform
/// <summary>
/// Gets the total size of the toplevel, excluding shadows.
/// </summary>
Size FrameSize { get; }
Size? FrameSize { get; }
/// <summary>
/// Gets the scaling factor for the toplevel. This is used for rendering.

8
src/Avalonia.Controls/TopLevel.cs

@ -45,8 +45,8 @@ namespace Avalonia.Controls
/// <summary>
/// Defines the <see cref="FrameSize"/> property.
/// </summary>
public static readonly DirectProperty<TopLevel, Size> FrameSizeProperty =
AvaloniaProperty.RegisterDirect<TopLevel, Size>(nameof(FrameSize), o => o.FrameSize);
public static readonly DirectProperty<TopLevel, Size?> FrameSizeProperty =
AvaloniaProperty.RegisterDirect<TopLevel, Size?>(nameof(FrameSize), o => o.FrameSize);
/// <summary>
/// Defines the <see cref="IInputRoot.PointerOverElement"/> property.
@ -80,7 +80,7 @@ namespace Avalonia.Controls
private readonly IPlatformRenderInterface _renderInterface;
private readonly IGlobalStyles _globalStyles;
private Size _clientSize;
private Size _frameSize;
private Size? _frameSize;
private WindowTransparencyLevel _actualTransparencyLevel;
private ILayoutManager _layoutManager;
private Border _transparencyFallbackBorder;
@ -208,7 +208,7 @@ namespace Avalonia.Controls
/// <summary>
/// Gets or sets the total size of the window.
/// </summary>
public Size FrameSize
public Size? FrameSize
{
get { return _frameSize; }
protected set { SetAndRaise(FrameSizeProperty, ref _frameSize, value); }

2
src/Avalonia.DesignerSupport/Remote/Stubs.cs

@ -21,7 +21,7 @@ namespace Avalonia.DesignerSupport.Remote
public IPlatformHandle Handle { get; }
public Size MaxAutoSizeHint { get; }
public Size ClientSize { get; }
public Size FrameSize => ClientSize;
public Size? FrameSize => null;
public double RenderScaling { get; } = 1.0;
public double DesktopScaling => 1.0;
public IEnumerable<object> Surfaces { get; }

2
src/Avalonia.Headless/HeadlessWindowImpl.cs

@ -41,7 +41,7 @@ namespace Avalonia.Headless
}
public Size ClientSize { get; set; }
public Size FrameSize => ClientSize;
public Size? FrameSize => null;
public double RenderScaling { get; } = 1;
public double DesktopScaling => RenderScaling;
public IEnumerable<object> Surfaces { get; }

2
src/Avalonia.Native/WindowImplBase.cs

@ -104,7 +104,7 @@ namespace Avalonia.Native
}
}
public Size FrameSize
public Size? FrameSize
{
get
{

4
src/Avalonia.X11/X11Window.cs

@ -297,7 +297,7 @@ namespace Avalonia.X11
public Size ClientSize => new Size(_realSize.Width / RenderScaling, _realSize.Height / RenderScaling);
public Size FrameSize
public Size? FrameSize
{
get
{
@ -308,7 +308,7 @@ namespace Avalonia.X11
if (nitems.ToInt64() != 4)
{
// Window hasn't been mapped by the WM yet, so can't get the extents.
return ClientSize;
return null;
}
var data = (IntPtr*)prop.ToPointer();

2
src/Linux/Avalonia.LinuxFramebuffer/FramebufferToplevelImpl.cs

@ -62,7 +62,7 @@ namespace Avalonia.LinuxFramebuffer
}
public Size ClientSize => ScaledSize;
public Size FrameSize => ClientSize;
public Size? FrameSize => null;
public IMouseDevice MouseDevice => new MouseDevice();
public IPopupImpl CreatePopup() => null;

2
src/Windows/Avalonia.Win32.Interop/Wpf/WpfTopLevelImpl.cs

@ -100,7 +100,7 @@ namespace Avalonia.Win32.Interop.Wpf
}
Size ITopLevelImpl.ClientSize => _finalSize;
Size ITopLevelImpl.FrameSize => _finalSize;
Size? ITopLevelImpl.FrameSize => null;
IMouseDevice ITopLevelImpl.MouseDevice => _mouse;
double ITopLevelImpl.RenderScaling => PresentationSource.FromVisual(this)?.CompositionTarget?.TransformToDevice.M11 ?? 1;

2
src/Windows/Avalonia.Win32/WindowImpl.cs

@ -213,7 +213,7 @@ namespace Avalonia.Win32
}
}
public Size FrameSize
public Size? FrameSize
{
get
{

2
src/iOS/Avalonia.iOS/AvaloniaView.cs

@ -91,7 +91,7 @@ namespace Avalonia.iOS
}
public Size ClientSize => new Size(_view.Bounds.Width, _view.Bounds.Height);
public Size FrameSize => ClientSize;
public Size? FrameSize => null;
public double RenderScaling => _view.ContentScaleFactor;
public IEnumerable<object> Surfaces { get; set; }
public Action<RawInputEventArgs> Input { get; set; }

1
tests/Avalonia.UnitTests/MockWindowingPlatform.cs

@ -29,7 +29,6 @@ namespace Avalonia.UnitTests
windowImpl.SetupAllProperties();
windowImpl.Setup(x => x.ClientSize).Returns(() => clientSize);
windowImpl.Setup(x => x.FrameSize).Returns(() => clientSize);
windowImpl.Setup(x => x.MaxAutoSizeHint).Returns(s_screenSize);
windowImpl.Setup(x => x.DesktopScaling).Returns(1);
windowImpl.Setup(x => x.RenderScaling).Returns(1);

Loading…
Cancel
Save