http://bugs.winehq.org/show_bug.cgi?id=9320
Vincent Povirk madewokherd@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |1.2.0
--- Comment #11 from Vincent Povirk madewokherd@gmail.com 2009-11-08 16:30:27 --- Thanks, I know what you mean now. This actually bit me in sugared wine.
Re-adding 1.2 target since we only removed it because of how confused we were.
We explicitly test for virtual desktop mode in X11DRV_SetFocus and never set focus to any Wine window in that case. Keyboard input only ever worked by coincidence because of how X happens to work, and explorer should never really have been focused at all.
Now that we use locally active mode, it might be enough to simply disable that check.
If we do disable the check, we'll still have the following problems: * Only one window, inside or outside the virtual desktop, can be focused. Windows inside the virtual desktop will lose focus to those outside, and the other way around. (I've envisioned an alternative scheme where focus is tracked separately inside the desktop and copied to the X side when focus is inside the desktop, but I think I will have to abandon that because it causes too many complications.) * The virtual desktop still won't respond to WM_TAKE_FOCUS. You'll have to click on a window inside a virtual desktop to focus it. I don't know what a sensible response to WM_TAKE_FOCUS could be. * There's a possible race condition where the focus according to wineserver may not match the focus according to the X server. The problem is that we can set the focus and, if someone else (maybe in the same desktop) did the same thing earlier but with a later timestamp, or we used a timestamp that is later than the X server's clock (unfortunately, this is possible with the current code), we get no FocusIn event or FocusOut event from the X server. I worried about fixing this along with the virtual desktop focus previously, but now I think it's an independent issue and should be thought of separately.