https://bugs.winehq.org/show_bug.cgi?id=37614
Sebastian Lackner sebastian@fds-team.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |sebastian@fds-team.de Target Milestone|--- |1.8.0
--- Comment #3 from Sebastian Lackner sebastian@fds-team.de --- I've tracked down the race condition and it should be easy to fix. The problem occurs when:
* Thread 1 calls GetDesktopWindow() and is responsible for setting up the desktop. * Desktop process finishes CreateWindow call. The desktop is now partially initialized, but still has size 0x0. * Thread 2 calls GetDesktopWindow() and receives a valid handle. The code assumes that the desktop is already initialized, but actually it isn't.
The relevant function is X11DRV_CreateDesktopWindow, which doesn't handle partially initialized desktops. I think its easy enough to fix this annoying bug before the 1.8 release, assigning to myself. (But other people are also welcome to help searching for the best solution of course.)