- if ( !PosChanged && (WinPos.flags & SWP_FRAMECHANGED) && VisBefore )
- {
- PWND pwnd = Window;
- PWND Parent = pwnd->spwndParent;
-
- TRACE("SWP_FRAMECHANGED no chg\n");
-
- if ( pwnd->style & WS_CHILD ) // Fix ProgMan menu bar drawing.
- {
- TRACE("SWP_FRAMECHANGED win child %p Parent %p\n",pwnd,Parent);
- pwnd = Parent ? Parent : pwnd;
- }
-
- if ( !(pwnd->style & WS_CHILD) )
- {
- HDC hdc;
- HRGN DcRgn = NtGdiCreateRectRgn(0, 0, 0, 0);
- PREGION DcRgnObj = REGION_LockRgn(DcRgn);
-
- TRACE("SWP_FRAMECHANGED Draw\n");
-
- IntGdiCombineRgn(DcRgnObj, VisBefore, NULL, RGN_COPY);
- REGION_UnlockRgn(DcRgnObj);
-
- hdc = UserGetDCEx( pwnd,
- DcRgn,
- DCX_WINDOW|DCX_CACHE|DCX_INTERSECTRGN|DCX_CLIPSIBLINGS|DCX_KEEPCLIPRGN); // DCX_WINDOW, see note above....
-
- NC_DoNCPaint(pwnd, hdc, -1); // Force full redraw of nonclient area.
-
- UserReleaseDC(pwnd, hdc, FALSE);
- IntValidateParent(pwnd, DcRgnObj);
- GreDeleteObject(DcRgn);
- }
- }
-
- /* We need to redraw what wasn't visible before */