diff --git a/reactos/subsys/win32k/ntuser/painting.c b/reactos/subsys/win32k/ntuser/painting.c index 40b26434415..b7738e6676c 100644 --- a/reactos/subsys/win32k/ntuser/painting.c +++ b/reactos/subsys/win32k/ntuser/painting.c @@ -16,7 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * - * $Id: painting.c,v 1.70 2004/02/21 22:22:26 navaraf Exp $ + * $Id: painting.c,v 1.71 2004/02/21 23:30:18 navaraf Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -560,7 +560,6 @@ IntFindWindowToRepaint(HWND hWnd, PW32THREAD Thread) } ExAcquireFastMutex(&Window->ChildrenListLock); - for (Child = Window->LastChild; Child; Child = Child->PrevSibling) { if (IntIsWindowDirty(Child) && @@ -570,21 +569,26 @@ IntFindWindowToRepaint(HWND hWnd, PW32THREAD Thread) break; } } + ExReleaseFastMutex(&Window->ChildrenListLock); if (hFoundWnd == NULL) { - for (Child = Window->LastChild; Child; Child = Child->PrevSibling) + HWND *List; + INT i; + + List = IntWinListChildren(Window); + if (List != NULL) { - if (Child->Style & WS_VISIBLE) + for (i = 0; List[i]; i++) { - hFoundWnd = IntFindWindowToRepaint(Child->Self, Thread); + hFoundWnd = IntFindWindowToRepaint(List[i], Thread); if (hFoundWnd != NULL) break; } + ExFreePool(List); } } - ExReleaseFastMutex(&Window->ChildrenListLock); IntReleaseWindowObject(Window); return hFoundWnd;