From ae4589a5d4dd5b112ee029e065663a428757a5d6 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Sat, 3 Sep 2016 22:06:39 +0200 Subject: [PATCH] WM_PAINT must always be handled. Timers won't be called if not as WM_PAINT has a higer priority. --- src/Windows/Avalonia.Win32/WindowImpl.cs | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/Windows/Avalonia.Win32/WindowImpl.cs b/src/Windows/Avalonia.Win32/WindowImpl.cs index 872a7cf36b..65e10cafda 100644 --- a/src/Windows/Avalonia.Win32/WindowImpl.cs +++ b/src/Windows/Avalonia.Win32/WindowImpl.cs @@ -537,18 +537,15 @@ namespace Avalonia.Win32 break; case UnmanagedMethods.WindowsMessage.WM_PAINT: - if (Paint != null) - { - UnmanagedMethods.PAINTSTRUCT ps; + UnmanagedMethods.PAINTSTRUCT ps; - if (UnmanagedMethods.BeginPaint(_hwnd, out ps) != IntPtr.Zero) - { - UnmanagedMethods.RECT r; - UnmanagedMethods.GetUpdateRect(_hwnd, out r, false); - var f = Scaling; - Paint(new Rect(r.left / f, r.top / f, (r.right - r.left) / f, (r.bottom - r.top) / f)); - UnmanagedMethods.EndPaint(_hwnd, ref ps); - } + if (UnmanagedMethods.BeginPaint(_hwnd, out ps) != IntPtr.Zero) + { + UnmanagedMethods.RECT r; + UnmanagedMethods.GetUpdateRect(_hwnd, out r, false); + var f = Scaling; + 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); } return IntPtr.Zero;