Hello again,
The patch:
http://www.winehq.org/hypermail/wine-cvs/2004/10/0395.html
Log message: Get rid of the WIN_NEEDS_BEGINPAINT flag, Windows
will happily loop
forever too if WM_PAINT is not handled properly.
Causes regression in the game "DeusEx". The game was playable before of the patch, now it
freezes
in the 2th title screen.
The same patch causes regression in the game "Trickstyle". The same problems, it was playable, and now it freezes in the 2th title screen.
Regards, Carlos.
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.
Regards
___________________________________________________________ ALL-NEW Yahoo! Messenger - all new features - even more fun! http://uk.messenger.yahoo.com
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