On Tue, Jul 8, 2008 at 2:10 AM, Alexandre Julliard <[EMAIL PROTECTED]> wrote: > "Lei Zhang" <[EMAIL PROTECTED]> writes: > >> @@ -1808,6 +1808,10 @@ static BOOL fixup_flags( WINDOWPOS *winpos ) >> if ((wndPtr->rectWindow.right - wndPtr->rectWindow.left == winpos->cx) >> && >> (wndPtr->rectWindow.bottom - wndPtr->rectWindow.top == winpos->cy)) >> winpos->flags |= SWP_NOSIZE; /* Already the right size */ >> + else if (((winpos->flags & >> (SWP_NOZORDER|SWP_NOREDRAW|SWP_FRAMECHANGED|SWP_NOACTIVATE)) == >> SWP_NOREDRAW) && >> + (wndPtr->rectWindow.right - wndPtr->rectWindow.left == origSize.x) >> && >> + (wndPtr->rectWindow.bottom - wndPtr->rectWindow.top == origSize.y)) >> + winpos->flags |= SWP_NOSIZE; /* Already the right size */ > > It makes no sense to compare the window rect against the original size > since the window rect hasn't been changed yet, it will always > match. Also I fail to see why this would have anything to do with > SWP_NOREDRAW. I think you are on the wrong track with this bug.
You're right, the problem required more investigation and I'll have a better patch soon. Though while running the user32 tests, I did see situations where those comparisons do not return true.