Clear update region before WM_NCDESTROY.
This commit is contained in:
parent
34bf815822
commit
7c2f0fe45d
|
@ -431,6 +431,23 @@ static WND* WIN_DestroyWindow( WND* wndPtr )
|
||||||
WIN_ReleaseWndPtr(pWnd);
|
WIN_ReleaseWndPtr(pWnd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Clear the update region to make sure no WM_PAINT messages will be
|
||||||
|
* generated for this window while processing the WM_NCDESTROY.
|
||||||
|
*/
|
||||||
|
if ((wndPtr->hrgnUpdate) || (wndPtr->flags & WIN_INTERNAL_PAINT))
|
||||||
|
{
|
||||||
|
if (wndPtr->hrgnUpdate > 1)
|
||||||
|
DeleteObject( wndPtr->hrgnUpdate );
|
||||||
|
|
||||||
|
QUEUE_DecPaintCount( wndPtr->hmemTaskQ );
|
||||||
|
|
||||||
|
wndPtr->hrgnUpdate = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Send the WM_NCDESTROY to the window being destroyed.
|
||||||
|
*/
|
||||||
SendMessageA( wndPtr->hwndSelf, WM_NCDESTROY, 0, 0);
|
SendMessageA( wndPtr->hwndSelf, WM_NCDESTROY, 0, 0);
|
||||||
|
|
||||||
/* FIXME: do we need to fake QS_MOUSEMOVE wakebit? */
|
/* FIXME: do we need to fake QS_MOUSEMOVE wakebit? */
|
||||||
|
@ -445,12 +462,6 @@ static WND* WIN_DestroyWindow( WND* wndPtr )
|
||||||
|
|
||||||
wndPtr->dwMagic = 0; /* Mark it as invalid */
|
wndPtr->dwMagic = 0; /* Mark it as invalid */
|
||||||
|
|
||||||
if ((wndPtr->hrgnUpdate) || (wndPtr->flags & WIN_INTERNAL_PAINT))
|
|
||||||
{
|
|
||||||
if (wndPtr->hrgnUpdate > 1) DeleteObject( wndPtr->hrgnUpdate );
|
|
||||||
QUEUE_DecPaintCount( wndPtr->hmemTaskQ );
|
|
||||||
}
|
|
||||||
|
|
||||||
/* toss stale messages from the queue */
|
/* toss stale messages from the queue */
|
||||||
|
|
||||||
if( wndPtr->hmemTaskQ )
|
if( wndPtr->hmemTaskQ )
|
||||||
|
|
Loading…
Reference in New Issue