Q for AJ? Re: UT2003 Windowing Regression - Yet Another nights effort...

Ann and Jason Edmeades us at the-edmeades.demon.co.uk
Wed May 18 15:14:37 CDT 2005


Ok, I need advice on this one...

I have been purely testing on windows, no wine involvement, to see what
happens when I do various things.

My test program doesn't do anything in the WM_PAINT handler at all. This
results in the machine sitting at 100% CPU processing WM_PAINT messages.

1. Changing the WM_PAINT process to post another user message, results in
alternating message posted and WM_PAINT messages, ie normal user message
processing is occurring

2. Posting a user message inside the user message handler, results in
WM_PAINT being driven, followed by looping processing the user messages - ie
WM_PAINT messages are not on the message queue

3. RedrawWindow with update now jumps straight into the message routine with
a WM_PAINT, but if we do nothing in that routine, it does indeed proceed to
the line after the RedrawWindow call. Wine never leaves the updatenow
processing because it loops until the whole region is validated.

I believe staying in the updatenow code in wine is incorrect. I think what
happens is that when the message dispatch loop gets an empty queue and the
window has an invalid region, then a WM_PAINT is returned.

So... Can we / I please remove the loop? :-))

What other tests can I do under windows to confirm the behaviour?

Jason






More information about the wine-devel mailing list