http://bugs.winehq.org/show_bug.cgi?id=4009
------- Additional Comments From the3dfxdude@gmail.com 2006-19-08 23:39 ------- Created an attachment (id=3351) --> (http://bugs.winehq.org/attachment.cgi?id=3351&action=view) Parentage/Ownership problem test app
Test App! Tries to mimic what Diablo does as much as possible.
Build with: winegcc -g some.c -lddraw -ldxguid -lgdi32
Expected result: pulsating white drawn to entire screen Windows 2003: works correctly Wine: black screen (hack fixes it...)
The game actually does request the parent to be its first window. However, because of this piece of code, it is overwritten to be desktop. Warning, you can't comment the parent reassignment out because it breaks even more...
From dlls/user/win.c approx line 985:
else if (cs->hwndParent) { if ((cs->style & (WS_CHILD|WS_POPUP)) != WS_CHILD) { FIXME("warning! overwriting parent!\n"); parent = GetDesktopWindow(); owner = cs->hwndParent; }