Browse Source

make MONITORINFO a struct

pull/1953/head
ahopper 8 years ago
parent
commit
f907139a5c
  1. 15
      src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs
  2. 2
      src/Windows/Avalonia.Win32/ScreenImpl.cs
  3. 2
      src/Windows/Avalonia.Win32/WindowImpl.cs

15
src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs

@ -1055,12 +1055,17 @@ namespace Avalonia.Win32.Interop
} }
[StructLayout(LayoutKind.Sequential)] [StructLayout(LayoutKind.Sequential)]
internal class MONITORINFO internal struct MONITORINFO
{ {
public int cbSize = Marshal.SizeOf<MONITORINFO>(); public int cbSize;
public RECT rcMonitor = new RECT(); public RECT rcMonitor;
public RECT rcWork = new RECT(); public RECT rcWork;
public int dwFlags = 0; public int dwFlags;
public static MONITORINFO NewMONITORINFO()
{
return new MONITORINFO() { cbSize = Marshal.SizeOf<MONITORINFO>() };
}
public enum MonitorOptions : uint public enum MonitorOptions : uint
{ {

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

@ -26,7 +26,7 @@ namespace Avalonia.Win32
EnumDisplayMonitors(IntPtr.Zero, IntPtr.Zero, EnumDisplayMonitors(IntPtr.Zero, IntPtr.Zero,
(IntPtr monitor, IntPtr hdcMonitor, ref Rect lprcMonitor, IntPtr data) => (IntPtr monitor, IntPtr hdcMonitor, ref Rect lprcMonitor, IntPtr data) =>
{ {
MONITORINFO monitorInfo = new MONITORINFO(); MONITORINFO monitorInfo = MONITORINFO.NewMONITORINFO();
if (GetMonitorInfo(monitor, monitorInfo)) if (GetMonitorInfo(monitor, monitorInfo))
{ {
RECT bounds = monitorInfo.rcMonitor; RECT bounds = monitorInfo.rcMonitor;

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

@ -837,7 +837,7 @@ namespace Avalonia.Win32
if (monitor != IntPtr.Zero) if (monitor != IntPtr.Zero)
{ {
MONITORINFO monitorInfo = new MONITORINFO(); MONITORINFO monitorInfo = MONITORINFO.NewMONITORINFO();
if (GetMonitorInfo(monitor, monitorInfo)) if (GetMonitorInfo(monitor, monitorInfo))
{ {

Loading…
Cancel
Save