Total messages: 207
Registration date: 16.03.2006
To begin with, all I did was:
1. Open the app (PingPlotter, in this case)
2. Move it to where I wanted it (which happened to be on the right-hand monitor)
3. Created a specific rule for startup position in AWM and dragged the target onto it.
I was fully expecting this to achieve the obvious result - i.e. to put the window where I'd left it. I don't want to save position on exit, as I might move it, but I always want it to start in the same place.
What I see from this investigation is that the position saved by the target is relative to the top left of the entire desktop, but the position the window is moved to on startup is relative to the top left of the monitor the window happens to open on - this surely isn't right.
I would have thought an easy fix is to alter the code which moves the window on startup to calculate the desired position relative to the top left of the entire desktop (the same as the target does when saving the position to begin with), then it wouldn't matter which monitor the window opened on. Or have I misunderstood how this works? The only complication might be around the different ways you can arrange multiple monitors in the Windows display properties page - for example if I put monitor 2 to the left of monitor 1, then the positions returned by the AWM target are:
Monitor 1: 0,0 to 1600,1200
Monitor 2: -1600,0 to 0,1200
So I guess 0,0 is always the top left of monitor 1, and any other monitors take their coordinate system based on where they are placed relative to monitor 1.
Anyway, even if all the possible variations on monitor placement can't be handled perfectly, I think it would be much better if the target for saving the position in the first place and the code which then moves the window should use the same system.
As for the minimisation problem, thanks for adding it to the list. I had a few ideas, but none of them are trivial. I'll put them in the feature requests forum, and for now I'll do it by hand