Alexandre Julliard (julliard_at_winehq.org) wrote:> We don't support having the same user run from different displays at> the same time. I don't think that's a common setup at all. It probably is not a common setup, but Boaz isn't the only person to have been bitten by this. It has happened both to us and to people who use our software. In our development environment, we usually use one or two common user accounts to do all development and testing in. I know this isn't ideal, but I don't have any power to change this. Anyway, with this setup, it is very easy to have two people developing or testing from the same account but displaying on separate machines.
Right now we have been doing what was suggested earlier -- we have a script to launch our application and this script creates a .wine-$DISPLAY directory and points WINEPREFIX to that directory. This works well enough for now. It's inconvenient that the config file and registry aren't shared, so doing things like changing printer settings is a bit of a chore, but this hasn't bothered us too much yet. We're also making the assumption that not many users will be running this on multiple displays, so things will just work for most users and the few that do try to run on multiple displays will at least be able to do it.
I'm curious how much work would be involved in fixing this correctly. I've never looked at the wineserver code, so I don't know if this would just be a matter of adding another variable to a data structure that gets passed around to all of the windowing code, or if this would require major changes to the way wineserver works. If it's reasonably easy, I might be able to make the fix or lend some assistance; if it is a large amount of work, we'll probably be happy with the workaround we have.
Eric
"Eric Frias" efrias@syncad.com writes:
I'm curious how much work would be involved in fixing this correctly. I've never looked at the wineserver code, so I don't know if this would just be a matter of adding another variable to a data structure that gets passed around to all of the windowing code, or if this would require major changes to the way wineserver works. If it's reasonably easy, I might be able to make the fix or lend some assistance; if it is a large amount of work, we'll probably be happy with the workaround we have.
Basically you need to change the window management code in the server to support multiple window hierarchies, and create one hierarchy per display; then you need to associate related things like clipboard or window classes to the proper hierarchy. It basically boils down to implementing the Windows concept of desktops and window stations. It's not very hard, but it's still a bit of work.
"Alexandre Julliard" julliard@winehq.org wrote:
"Eric Frias" efrias@syncad.com writes:
I'm curious how much work would be involved in fixing [multiple
displays]
correctly.
Basically you need to change the window management code in the server to support multiple window hierarchies, and create one hierarchy per display; then you need to associate related things like clipboard or window classes to the proper hierarchy. It basically boils down to implementing the Windows concept of desktops and window stations. It's not very hard, but it's still a bit of work.
Thanks... I've looked into the windowing code a bit and I think it's not something I want to attempt right now -- I certainly don't know enough about the way Windows expects desktops and window stations to be set up, and I'm not sure my knowledge of X is up to the task either. It's not the quick fix I was hoping for, so I'll just be content with the workaround with the WINEPREFIX directories.
Eric