[PATCH 2/2] user32: Set SWP_NOSIZE for windows with SWP_NOREDRAW.

Lei Zhang thestig at google.com
Tue Jul 8 16:41:22 CDT 2008


On Tue, Jul 8, 2008 at 2:10 AM, Alexandre Julliard <julliard at winehq.org> wrote:
> "Lei Zhang" <thestig at google.com> 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.



More information about the wine-devel mailing list