[NtUser]
authorJames Tabor <james.tabor@reactos.org>
Fri, 13 Jan 2017 04:06:24 +0000 (04:06 +0000)
committerJames Tabor <james.tabor@reactos.org>
Fri, 13 Jan 2017 04:06:24 +0000 (04:06 +0000)
- Fix menu surfing while using MS Office 2003. See CORE-12085 and CORE-12071.

svn path=/trunk/; revision=73532

reactos/win32ss/user/ntuser/painting.c

index 43e8d88..a5f86cb 100644 (file)
@@ -366,6 +366,25 @@ IntSendNCPaint(PWND pWnd, HRGN hRgn)
 VOID FASTCALL
 IntSendChildNCPaint(PWND pWnd)
 {
 VOID FASTCALL
 IntSendChildNCPaint(PWND pWnd)
 {
+   PWND Child;
+   HWND *List, *phWnd;
+
+   List = IntWinListChildren(UserGetDesktopWindow());
+   if ( List )
+   {
+      for (phWnd = List; *phWnd; ++phWnd)
+      {
+          Child = ValidateHwndNoErr(*phWnd);
+          if ( Child && Child->hrgnUpdate == NULL && Child->state & WNDS_SENDNCPAINT)
+          {
+             USER_REFERENCE_ENTRY Ref;
+             UserRefObjectCo(Child, &Ref);
+             IntSendNCPaint(Child, HRGN_WINDOW);
+             UserDerefObjectCo(Child);
+          }
+      }
+   }
+/* FIXME : Use snap shot mode until window death is fixed while surfing menus! Fix CORE-12085 and CORE-12071.
    pWnd = pWnd->spwndChild;
    while(pWnd)
    {
    pWnd = pWnd->spwndChild;
    while(pWnd)
    {
@@ -377,7 +396,7 @@ IntSendChildNCPaint(PWND pWnd)
          UserDerefObjectCo(pWnd);
       }
       pWnd = pWnd->spwndNext;
          UserDerefObjectCo(pWnd);
       }
       pWnd = pWnd->spwndNext;
-   }
+   }*/
 }
 
 /*
 }
 
 /*