Processing Ajax...

Title

Message

Confirm

Confirm

Confirm

Confirm

Are you sure you want to delete this item?

Confirm

Are you sure you want to delete this item?

Confirm

Are you sure?

User Image
Tailen
24 discussion posts
I have the problem that the external output HDMI on my video card is not always on (it's connected to a TV/projector). I have two other DVI monitors that I normally use and in the Monitor Configuration menu they have the ID numbers 1 and 2.
The problem is that when I connect the HDMI cable, the projector becomes monitor ID 1, and the two DVI monitors become 2 and 3.

This causes two separate problems:
* All my Window Location settings are useless, because they are tied to a monitor number, which changes when the projector is connected.
* More annoyingly, all the open application windows are moved to another monitor when the profile is selected. I think this is a bug, however. For example, open application windows on the main monitor (ID 1) are moved to the projector (the new ID1) when it is connected. This sort of makes sense, if the application windows were tied to the monitor ID, but I can recreate the same behavior even when the monitor numbers are different:
1) Connect the HDMI to the projector without turning it on or activating the Monitor Configuration profile. This makes the projector show up as monitor ID 1, but it is disabled for the moment. The main screen is renamed to ID 2 and the secondary screen renamed to ID 3 (at which point the Window Location settings are wrong, from the other issue above).
2) Open an application window on the main screen, monitor ID 2. Open another application window on the secondary screen, monitor ID 3.
3) Activate the Monitor Configuration profile that has all three screens, or simply Enable the currently disabled monitor ID 1 (projector).
4) The application window on the main screen is moved to the projector (from ID 2 to ID 1), and the application window on the secondary screen is moved to the main screen (from ID 3 to ID 2). A few applications that draw their screens in odd ways sometimes stay on the same screen (e.g. Steam).

Solutions:
* Persistent monitor ID numbers tied to the screen name or connection name, or some other persistent ID.
* Making sure that new screens will always receive a higher ID number, i.e. currently activated screens cannot have their ID number stolen/changed.
* Count all the monitor connectors that the graphics card has and assign the ID numbers on startup, regardless of whether the monitors are connected or not.
* Some other clever solution I can't think of, which ensures that newly added monitors do not disrupt the current setup, or change the monitor ID numbers (so Window Location can work correctly).
* Fixing the bug with application windows jumping screens when monitors are activated above.
Jun 4, 2014  • #1
Keith Lammers (BFS)'s profile on WallpaperFusion.com
Unfortunately both of these things are actually by design in Windows, and we can't alter them using DisplayFusion. If you exit DisplayFusion, and test with/without the projector you should get the same results. The monitor IDs are set by Windows itself, and Windows also handles the new positions for applications when monitor configurations change.

The stuff that goes on when monitors are added/removed (changing IDs, windows moving, etc) is done really aggressively by Windows, and we're not able to hook it and modify the process at all :(

Sorry for the bad news!
Jun 4, 2014  • #2
User Image
Tailen
24 discussion posts
That's depressing news indeed.

How about adding a function in DisplayFusion that lets me restrict application windows appearing only on certain screens, and restricts mouse movement to those too?

I'm not sure how, but even if I turn off the projector, Windows can still see it as connected and I can Enable it in the monitor control panel. (I'm guessing there's some circuit in the HDMI socket for monitor detection, which is fed power by the HDMI cable itself?).
As long as I keep the cable connected, I have a phantom monitor attached, I just need to NOT have any windows pop up on it, or move my mouse there.
Maybe something that detects if a window is going to open on the projector and then redirects it to the left/right monitor instead? There's some mechanism in Windows that remembers where a window was last opened, so those windows will appear on the monitor by default, they just need to be redirected. It'll be fair to assume that a disconnected monitor is either to the far right or the far left of all the other enabled monitors.
Jun 4, 2014  • #3
Keith Lammers (BFS)'s profile on WallpaperFusion.com
We can't prevent a window from opening on a certain monitor, but one thing you can do is create a Window Location rule in DisplayFusion that will move any new window to the monitor that the mouse cursor is currently on. That way, even if a window does open up on the projector when it's turned off, it will get immediately moved to the monitor with the mouse cursor. Please see the attached screenshot for how to setup that rule :)

Hope that helps!
• Attachment: Window Location - All Windows to Current Monitor.jpg [125,718 bytes]
Window Location - All Windows to Current Monitor.jpg
Window Location - All Windows to Current Monitor.jpg
Jun 5, 2014  • #4
User Image
Tailen
24 discussion posts
This seems like it might have other unintended consequences. I do have a few other rules added already, but if the *.* doesn't override the other rules, I think it'll work.
I'll try it out. Thanks :)
Jun 7, 2014  • #5
Subscribe to this discussion topic using RSS
Was this helpful?  Login to Vote(-)  Login to Vote(-)