Regression in "DeusEx"

Mike Hearn mh at codeweavers.com
Sat Feb 12 12:24:44 CST 2005


On Sat, 12 Feb 2005 10:39:46 +0000, luis lenders wrote:
> The aforementioned patch also screws up foobar2000.
> See http://appdb.winehq.org/appview.php?versionId=2355
> , last comment. Maybe someone could have a look at it
> because it affects, as it appears, quite some apps.

It affects Notes too, so I'm investigating it. 

Unfortunately this is not going to be a quick fix.
The story appears to be like this:

Wines painting code used to be incorrect in fundamental ways. 
So we had a hack in there such that if the invalid region was not
cleared in response to WM_PAINT, we'd print an ERR and cover up
for it. This made apps work even if they then looked really ugly
(like foobar2000).

With the WM rewrite this hack was no longer needed and removed.
Unfortunately this broke lots of apps by exposing bugs this hack 
previously hid. So to fix these apps we must figure out why they are not
painting when they should, and fix them. Otherwise Wine will send them
WM_PAINT requests over and over again until they do.

There may be some other bugs in the new WM code that mean we can ignore
windows that do nothing in WM_PAINT, in certain circumstances.

The reason Foobar2000 can get away without calling BeginPaint/EndPaint by
the way is because it calls ValidateRegion at the end, which is enough to
terminate the WM_PAINT processing.

Alexandre, does this sum up the situation correctly? Better, could you
post your thoughts on this issue which does appear to have caused a ton of
regressions.

thanks -mike




More information about the wine-devel mailing list