4

Short version: When moving my laptop and sleeping between using different monitors, all my open windows are crammed into the upper left corner as if they tried to fit on the laptop internal screen resolution. I plug in and switch to the external monitor before unlocking my session. Is there a way to prevent this automatic resizing?

Longer version: I have a laptop that I move between two locations. I have one docking station, and the same kind of monitor configured for 1600x1200, in both locations. The internal laptop screen is awful so I don't use it.

  • Location A: Docking station, monitor connected via DVI.
  • Location B: No docking station, external monitor connected via VGA cable. In this location I have the laptop lid open for keyboard access but I don't use the laptop screen.

When moving from Location A to Location B, the laptop wakes up from sleep, displaying the screen on the internal monitor. I switch to the external monitor display (using Fn+F8 on this laptop), and only after that do I unlock my session with my password. However, Windows has crammed all my nicely arranged windows into the upper left corner as if it were trying to fit them all on the laptop internal screen resolution.

When moving from Location B to Location A, I have the laptop lid closed when using the docking station so Windows apparently concludes the screen resolution is 1600x1200 and doesn't resize any windows.

The laptop is a Dell Latitude running Windows 7 Professional.

8
  • 1
    It's not trying to fit them all on the laptop internal screen resolution - it is fitting them all. It detects that the digital connection is gone, immediately removes the monitor (at which point it has to rearrange your windows onto the internal dispaly), and only then does it detect the new analog connection. It sounds like the way the graphics device in here initializes the connections works well with the order of events in one direction but not the other, I guess. This is system-specific so it can be hard to say. There's probably nothing you can do about it (well, buy another dock).
    – Shinrai
    Oct 9, 2012 at 20:45
  • I have tried always disconnecting and connecting the screens, and docking/undocking the laptop, while the laptop is sleeping. It's not going to "detect" anything while it's asleep. What leads you to suggest the dock is the problem here? It's the dock that came with the laptop, with a (presumably) proprietary Dell connector. Oct 9, 2012 at 20:47
  • No, my point is that it doesn't matter if you do it while it's asleep - it see that it's different when it wakes up, so it forces a redetection of the displays. It's the exact thing that would happen if it wasn't asleep, at least going the direction it doesn't work. It's DVI on one side and VGA on the other - it doesn't matter that they're identical panels. It's the graphics chipset's fault. It sounds like using DVI on both locations would work, though.
    – Shinrai
    Oct 9, 2012 at 22:26
  • Well I don't really care why it happens. My question is whether there is a way to prevent this resizing from happening. I don't own the hardware, so I am hoping for something like "[x] Stop shifting windows around when not asked to" or other software solution. Oct 9, 2012 at 22:30
  • Sorry, I guess I'm not being clear - Windows by default will reshuffle a window if it would no longer be visible, for instance if you've unplugged the monitor it was on, so that windows can't get stranded offscreen. There's no way around this behavior and anyway I think we can all agree it's probably a good behavior to have. The problem is that this laptop is triggering that behavior when it sees the monitor configuration has changed, and that's a hardware/chipset level problem. Unless you want to write new graphics drivers, there's probably not much you can do to prevent it.
    – Shinrai
    Oct 9, 2012 at 22:53

3 Answers 3

3

Lock the console. Push the Switch User button. This will completely disconnect your user session from the console (keyboard, display, mouse, sound, etc). -- you can also accomplish this by opening Task Manager and disconnecting your own session under the Users tab.

Then when you unplug your external monitor or docking station, your user session (and the various open windows within), will be unaware of any resolution changes.

Then plug the laptop back in to a monitor or docking station at its new location. When you "log in", your existing user session will get reattached, and ideally it will only see the resolution change from the original to the new (without going through the intervening "small" laptop native display res).

2
  • ... and, of course, test this under non-critical circumstances, and save everything first. My test of this technique was not thorough.
    – William
    Oct 10, 2012 at 2:19
  • Brilliant, just tried this and it did the trick. Thanks! Oct 10, 2012 at 3:45
3

Slightly different situation, but same problem: whenever my laptop would go to sleep after upgrading to Windows 10, I would suffer exactly the same problem. Inspired by William's answer, and some further experimentation, I found simply locking the computer (Windows Key + L) before closing the lid was sufficient. The other steps were not needed, at least in my case.

2
  • 1
    This duplicates another answer and adds no new content. Please don't post an answer unless you actually have something new to contribute.
    – DavidPostill
    Sep 24, 2015 at 11:09
  • 2
    This added new content that was relevant to me - it confirmed that the solution still works under Windows 10. Since I'm having that issue on a new company-issued Win10 laptop, I appreciated the update. Mar 1, 2016 at 21:44
0

Run tsdiscon.exe to disconnect your session before unplugging from the docking station. This will send you directly to the "switch user" screen. To make it easy, create a shortcut to the location "%windir%\System32\tsdiscon.exe" on your desktop (for example).

Source: http://en.kioskea.net/faq/15840-windows-7-a-shortcut-to-easily-switch-user and based the same approach William used in his excellent answer.

0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .