Browse Source

Prevent crashes caused by null locked framebuffer.

pull/4254/head
Dariusz Komosinski 6 years ago
parent
commit
af8acfce0d
  1. 12
      src/Windows/Avalonia.Win32/FramebufferManager.cs

12
src/Windows/Avalonia.Win32/FramebufferManager.cs

@ -17,16 +17,18 @@ namespace Avalonia.Win32
public ILockedFramebuffer Lock()
{
UnmanagedMethods.RECT rc;
UnmanagedMethods.GetClientRect(_hwnd, out rc);
var width = rc.right - rc.left;
var height = rc.bottom - rc.top;
if ((_fb == null || _fb.Size.Width != width || _fb.Size.Height != height) && width > 0 && height > 0)
UnmanagedMethods.GetClientRect(_hwnd, out var rc);
var width = Math.Max(1, rc.right - rc.left);
var height = Math.Max(1, rc.bottom - rc.top);
if ((_fb == null || _fb.Size.Width != width || _fb.Size.Height != height))
{
_fb?.Deallocate();
_fb = null;
_fb = new WindowFramebuffer(_hwnd, new PixelSize(width, height));
}
return _fb;
}
}

Loading…
Cancel
Save