Martin Fuchs martin-fuchs@gmx.net writes:
When trying to get my explorer clone to work on Wine, I found this way to make it work in Wine's desktop mode. I am also not really sure if this is the only or the best way to do it. But it works. Without this patch there exists this problem: Whenever you click onto the desktop, the shell window is moved into the foreground, in front of any other 'normal' window. Even the task bar becomes invisible, because it is hidden behind the desktop.
If the problem is only with your app, then it can be fixed there. Probably handling WM_MOUSEACTIVATE should do the trick. I also think the SetWindowPos calls in SetShellWindow should be moved into your app.
On MS Windows there is used a region of shared memory mapped read-only from the kernel space into user space of each process. This memory region contains for example the information about the shell window. This way it is possible to avoid a call into kernel, just to get the shell window. Do you think, such a thing would also be possible in Wine?
At some point we'll probably do something like that yes.