From 2b87e22db4d321eb1b519d7539a23526a45a9b94 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Sun, 5 Mar 2017 20:51:11 +0100 Subject: [PATCH] Use the dirty rect from BeginPaint on WM_PAINT. The one returned by `GetUpdateRect` at this point will be empty, from the win32 docs: > BeginPaint automatically validates the update region, so any call to GetUpdateRect made immediately after the call to BeginPaint retrieves an empty update region. --- src/Windows/Avalonia.Win32/WindowImpl.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Windows/Avalonia.Win32/WindowImpl.cs b/src/Windows/Avalonia.Win32/WindowImpl.cs index 0000b5c0a9..f80e62ee2d 100644 --- a/src/Windows/Avalonia.Win32/WindowImpl.cs +++ b/src/Windows/Avalonia.Win32/WindowImpl.cs @@ -572,9 +572,8 @@ namespace Avalonia.Win32 if (UnmanagedMethods.BeginPaint(_hwnd, out ps) != IntPtr.Zero) { - UnmanagedMethods.RECT r; - UnmanagedMethods.GetUpdateRect(_hwnd, out r, false); var f = Scaling; + var r = ps.rcPaint; Paint?.Invoke(new Rect(r.left / f, r.top / f, (r.right - r.left) / f, (r.bottom - r.top) / f)); UnmanagedMethods.EndPaint(_hwnd, ref ps); }