From a40b302a0351ca30ca5a6c82637e98ba1f519ff1 Mon Sep 17 00:00:00 2001 From: James Tabor Date: Sun, 8 Jun 2014 17:56:28 +0000 Subject: [PATCH] [Win32k] - Fix functions. Old patch from 2009. svn path=/trunk/; revision=63563 --- reactos/win32ss/user/ntuser/painting.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/reactos/win32ss/user/ntuser/painting.c b/reactos/win32ss/user/ntuser/painting.c index 72e6287c092..4259a0b3385 100644 --- a/reactos/win32ss/user/ntuser/painting.c +++ b/reactos/win32ss/user/ntuser/painting.c @@ -2141,7 +2141,13 @@ NtUserInvalidateRect( CONST RECT *lpUnsafeRect, BOOL bErase) { - return NtUserRedrawWindow(hWnd, lpUnsafeRect, NULL, RDW_INVALIDATE | (bErase? RDW_ERASE : 0)); + UINT flags = RDW_INVALIDATE | (bErase ? RDW_ERASE : 0); + if (!hWnd) + { + flags = RDW_ALLCHILDREN | RDW_INVALIDATE | RDW_FRAME | RDW_ERASE | RDW_ERASENOW; + lpUnsafeRect = NULL; + } + return NtUserRedrawWindow(hWnd, lpUnsafeRect, NULL, flags); } BOOL @@ -2151,6 +2157,11 @@ NtUserInvalidateRgn( HRGN hRgn, BOOL bErase) { + if (!hWnd) + { + EngSetLastError( ERROR_INVALID_WINDOW_HANDLE ); + return FALSE; + } return NtUserRedrawWindow(hWnd, NULL, hRgn, RDW_INVALIDATE | (bErase? RDW_ERASE : 0)); } @@ -2197,11 +2208,13 @@ NtUserValidateRect( HWND hWnd, const RECT *lpRect) { - if (hWnd) + UINT flags = RDW_VALIDATE; + if (!hWnd) { - return NtUserRedrawWindow(hWnd, lpRect, NULL, RDW_VALIDATE ); + flags = RDW_ALLCHILDREN | RDW_INVALIDATE | RDW_FRAME | RDW_ERASE | RDW_ERASENOW; + lpRect = NULL; } - return NtUserRedrawWindow(hWnd, lpRect, NULL, RDW_INVALIDATE|RDW_ERASE|RDW_ERASENOW|RDW_ALLCHILDREN); + return NtUserRedrawWindow(hWnd, lpRect, NULL, flags); } /* EOF */