This is one of the longest standing bugs which don't get much love from developers. Today I took some time with traces and wrote a test case which fails against git: http://bugs.winehq.org/attachment.cgi?id=35469
What is happening? When there's a child window to the ddraw window over it(the ddraw window), wined3d doesn't draw over the child. Windows, however, doesn't care about children and draws over them. Note that the DC is the same for both(according to traces).
Not only that, the child window have different positions when in fullscreen or virtual desktop.
As for the fix, I have yet to find the culprit dll(s) for this. Unfortunately I don't have the experience with wine's code and would like suggestions as to where to begin.
Hi,
Your test app is pretty helpful, I'll reply with more details in the bug report. Note however that this is not an easy buy, if it was it would have been fixed years ago. I am not convinced that a proper fix is possible at all. The apps in question, and your test app, are essentially broken, they just used to work by luck on Pre-compositing Windows versions, and we can hack them into a working state on X11 too as long as the user doesn't use a compositing window manager.
Stefan
On Thursday 07 July 2011 21:43:49 Charles Welton wrote:
This is one of the longest standing bugs which don't get much love from developers. Today I took some time with traces and wrote a test case which fails against git: http://bugs.winehq.org/attachment.cgi?id=35469
What is happening? When there's a child window to the ddraw window over it(the ddraw window), wined3d doesn't draw over the child. Windows, however, doesn't care about children and draws over them. Note that the DC is the same for both(according to traces).
Not only that, the child window have different positions when in fullscreen or virtual desktop.
As for the fix, I have yet to find the culprit dll(s) for this. Unfortunately I don't have the experience with wine's code and would like suggestions as to where to begin.