[WIN32K:NTUSER] Remove the hackish code that has been introduced in IntSendChildNCPaint() in r73532 (6d7fcc4b) to attempt to pseudo-fix CORE-12071 and CORE-12085 while breaking other stuff, amongst which CORE-14763 is one of the latest manifestations, and re-enable the correct original code.

This fixes painting hangs under diverse situations, while CORE-12071 and
CORE-12085 remain fixed.
This commit is contained in:
Hermès Bélusca-Maïto 2018-07-08 02:24:30 +02:00
parent ee0511b49d
commit 25004bb5b4
No known key found for this signature in database
GPG key ID: 3B2539C65E7B93D0

View file

@ -366,38 +366,16 @@ IntSendNCPaint(PWND pWnd, HRGN hRgn)
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);
}
}
ExFreePoolWithTag(List, USERTAG_WINDOWLIST);
}
/* FIXME : Use snap shot mode until window death is fixed while surfing menus! Fix CORE-12085 and CORE-12071.
pWnd = pWnd->spwndChild;
while(pWnd)
{
if (pWnd->hrgnUpdate == NULL && pWnd->state & WNDS_SENDNCPAINT)
{
USER_REFERENCE_ENTRY Ref;
UserRefObjectCo(pWnd, &Ref);
IntSendNCPaint(pWnd, HRGN_WINDOW);
UserDerefObjectCo(pWnd);
}
pWnd = pWnd->spwndNext;
}*/
for (pWnd = pWnd->spwndChild; pWnd; pWnd = pWnd->spwndNext)
{
if ((pWnd->hrgnUpdate == NULL) && (pWnd->state & WNDS_SENDNCPAINT))
{
USER_REFERENCE_ENTRY Ref;
UserRefObjectCo(pWnd, &Ref);
IntSendNCPaint(pWnd, HRGN_WINDOW);
UserDerefObjectCo(pWnd);
}
}
}
/*