64

I have a new 6870 Amd Radeon adapter with its drivers set to 1080p 60Hz resolution hooked up to a 2008 47" high end Samsung HDMI based TV.

However, when the tv is turned to a different HDMI input -(when I come back into windows) somehow Windows decides to resize all the open apps to a lower resolution - including some of the side docked hidden pop-outs. When it resizes those though - it just sticked the pop-outs in the middle of the screen and all the resized windows from the open applications in the top left corner - all of them stacked on top of each other and resized to the smaller resolution.

The things that seem to be ok after returning are the icons on the desktop, the taskbar, and the sidebar.

Anyone have any knowledge of 1) how this happens 2) why it happens 3) how to stop it from resizing the applications and some of the docked pop-outs (they are not really resized after returning - they are just stuck in the middle of the screen approximately where they would be if the right or bottom sidebar should be if the screen was resized to that lower resolution).

My hypothesis is that upon losing HDMI signal - that Windows is told by something (driver, or windows itself) that the resolution to be without a signal being present (noting that HDMI signals and handshakes are two way on HDMI devices. If it loses the signal or the tv is switched to another device - then the display adapter must figure that out and tell Windows or figures it out and designs randomly to change the display size).

Any and all help is most appreciated. I asked AMD/ATI - but they said they don't know why or how this is happening. I was hoping that maybe this is THE place that the super users truly go to - those that develop display adapter drivers, or that dive deeply into these areas of windows. If there is better sites or just competing sites - please advise - noting I have already written AMD/ATI.

Response / Additions 4/7/2011

It is really nice to get your reply Shinrai. (BTW is it proper etiquette on these forums to have a discussion?) Yet 'only one issue' - I am using a single display in this case - so Windows doesn't move application windows to another desktop. Windows (or something) decides to shrink the desktop it currently has and resize all windows to the maximum size of the desktop. As such I would be glad if Windows would just keep the current size of the one desktop that is in operation.

I also know that this does NOT happen on monitors connected with DVI. There I have had one and two monitors setup and it doesn't resize those screens at all when disconnecting monitors, turning them off, whatever... they stay solid - everything in place - to such an extent that if you forgot the other monitor is off - you will have troubles finding some windows without using one of the control app utilities.

So if I could even get the HDMI handling by Windows (or the display driver) ( 1] which is doing this anyway the display driver or Windows - and 2] where is that other resolution size (1024x768) coming from - its not the smallest and its not the largest?) to be having like DVI - Life would be golden (for this aspect anyway).

** found others with same problem in this thread: http://hardforum.com/showthread.php?t=1507324

1
  • I never saw your response until today. You should have left a comment on my answer rather than making an edit to your question, which is both bad form and doesn't notify me. That said, the problem is still a hardware one, so short of buying another monitor or adding something to spoof the signal you're probably out of luck.
    – Shinrai
    May 15, 2011 at 16:08

19 Answers 19

34

I have been digging around this problem for two days, and found few types of solutions:

  1. Universal solution, software program PersistentWindows, which saves all windows position and monitors display. If the resolution is changed and changed back, then it restores the same sizes and positions! Exactly what I wanted. The latest version just does its work, and silently sits in the systray. Link

  2. Fork of #1. but requires Windows 10 Creators Update. Better high DPI support. More CPU efficient. Link

  3. For some ATI users work, for some not, there are confirmations that it works. The solution is to use registry hack with key DMMEnableDDCPolling, to disable monitor connection polling under Windows at all. The caveat is that you need to restart the system after the change, and in case you need just quickly connect some external screen, it is not convenient. Link

  4. Lucky are NVIDIA card owners. The solution is to hardcode monitor EDID information to a VGA driver's onfile, and thus system thinks that this does not change. Managing a Display EDID on windows

  5. Hardware solution for HDMI connection, they sell their adapters on the web and also eBay. Link

  6. One more utility Windows Layout Manager to save the layouts and restore them on demand (management of various layouts). Much more complex and more powerful, but might be overkill to regular users. Link

I stick with #1 for a while (already since 2015 :) ), and if will find more, they will share.

Update 2024: Windows got better with window management, but I moved to Apple for many year already, it does remember windows even after system reboot.

10
  • 1
    I received the feedback from a few others and have since turned it into a Systray app. Thanks for the reference and Enjoy!
    – Min
    Feb 27, 2015 at 6:50
  • Option 1 worked for my 4k Seiki SE39UY04. Jan 9, 2016 at 16:56
  • For lucky NVIDIA card owners - check this, that helped me a lot !!! :) sites.google.com/site/ebobster/stuff/displayportblanking
    – maycca
    Sep 7, 2016 at 12:12
  • I sent you a pull request, @Min, after adding a package reference to the config file, otherwise NuGet would fail. If you accept I'll send you a new one with added "run with Windows" option.
    – Tom
    Nov 13, 2016 at 0:27
  • 1
    @maycca - 2016 NVIDIA link was gone, replaced it with link to article on their customer support pages.
    – Ed Randall
    Feb 7, 2021 at 8:54
15

I had this issue with my Radeon R9, all I did was to disable the GPU scalling at AMD Catalyst.

But for some reason still occurs, first backup your registry! Then open your windows registry and go to:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration

Only under the "SIMULATED" or "NOEDID" keys (Windows 10), change the keys decimals to:

PrimSurfSize.cx = 1920
PrimSurfSize.cy = 1080

Under "00":

ActiveSize.cx = 1920
ActiveSize.cy = 1080

Change to what ever resolution you are using. This will prevent your window to shrink or move from one side to the other when you turn your monitor off.

6
  • This stops the windows resizing, but unfortunately for me it doesn't stop them all moving to the corner. Nov 20, 2016 at 17:25
  • Thanks, this fixed it for me! No reboot needed; windows don't migrate to the corner. I have 2 HDMI external monitors and the problem happened if I simply undock and redock without opening the lid (among other cases). Clearly, the display system was cycling through some display with 1024x768 resolution. Of course, the windows do migrate to the main display, which is understandable. This is a Dell laptop with Intel HD Graphics 520. Nov 21, 2016 at 18:22
  • Interesting. It seems that the maximum simulated resolution is 1600x1200 on Win 7. Or at least, if I try to set the keys to anything bigger than that, it seems to ignore them. So for a UHD monitor it's rather annoying Dec 21, 2016 at 21:05
  • 1
    for me this fixed both the resizing and moving the windows to the upper left corner! Thank you for this. OP should mark this as correct answer as it doesn't require running any software as suggested in the above answer.
    – MilkyTech
    Feb 13, 2020 at 19:21
  • 2
    Changing the "PrimSurfSize" and "Stride" DWORD values under the first 00 subkey was sufficient to solve my issue. No need to modify ActiveSize or the second 00 subkeys.
    – variant
    Mar 22, 2021 at 22:02
5

Your hunch is correct; the monitor is essentially shutting off the handshake on that HDMI channel when you switch the input. Windows 7 sees this as "There is no longer a monitor connected here", at which point it disables that output. Since that screen no longer exists, everything that was on it has to go SOMEWHERE, so it shuffles everything onto your remaining displays, and it is not graceful. When the display returns, Windows 7 will remember how you had things arranged to some extent, but it's not going to shuffle your windows back around (you may have closed or opened or otherwise moved them in the interim, after all!).

There's nothing you can do with display drivers that can fix this; it's the behavior of the operating system and while it's inconvenient for your situation it makes sense. (The alternative is having things on monitors that don't actually exist, which XP did sometimes and let me tell you it was a nightmare.) There may be some third party software that can force this to not occur, but I don't know of any offhand and I suspect you'd run the risk of causing other problems. (If anybody can actually post any I'll be glad to upvote those answers.)

4
  • I have a similar setup, with my laptop connected via HDMI to my Sony TV. However, when I switch inputs, or even turn off the TV, upon returning to the laptop input everything is exactly as I left it. Windows remain maximised and covering the whole desktop, sidebar gadgets stay the same and desktop icons are where I left them. This makes me think it is not an issue with Windows, and instead either the way it is set up (Hardware or Drivers), or something funny with the way the TV handshakes on HDMI.
    – Connor W
    May 15, 2011 at 15:48
  • Also, the graphics card in my laptop is an ATI card (ATI Radeon HD 4530), so it is using the same 'ATI Catlyst Control Center' (Specifically version 2010.0706.2128.36662 for reference) software that I imagine is being used for the card in question.
    – Connor W
    May 15, 2011 at 15:52
  • @Connor W - That's basically what I said. The monitors in this case are making Windows think they're disconnected, and when that happens everything gets shuffled around. Clearly your TV does not do the same thing, but that's not Windows' fault (as I state here).
    – Shinrai
    May 15, 2011 at 16:07
  • 2
    To expand on this: Other sources suggest that "your remaining displays" will, in this case, include "Generic Non PNP VGA" if you only have one actual display connected. (See post immediately above linked post for context.) Mar 4, 2020 at 19:13
3

No additional hardware required

  1. Install TeamViewer or Chrome Remote desktop on the computer with the problem, and enable remote connections.
  2. Turn the TV/monitor off.
  3. The resolution changes on its own.
  4. Log into the computer remotely using the software from step 1. As stated in the question, the resolution has changed.
  5. Increase the resolution back to normal (as it is when the TV/monitor is on), using your remote connection.
  6. The resolution will no longer switch when the TV/monitor is turned off.
3
  • I didn't think of this and I think this is a very clever solution. I checked if this worked for me but I noticed that my resolution changes when I turn ON my TV instead of turning it off. It changes back to the original resolution fast, too fast to change it in that short period of time the resolution is changing.
    – Tom
    Nov 12, 2016 at 17:17
  • @Tom maybe try unplugging the TV as well?
    – brismuth
    Nov 12, 2016 at 17:25
  • Does not work for me. When my monitor is off, if I login remotely, I can't select any resolution other than the default (very low) one. Dec 29, 2020 at 11:34
3

Highly recommend a pure software solution "PersistentWindows" ( original version ), as mentioned by previous posts.

The application keeps track of window size/location, and automatically restores their last layout when the same monitor setup is alive again.

Based on the original source code and a runtime optimized version on github, I managed to make further improvements as follows,

  1. Fix random hang due to massive window resize requests and visual studio code update.

  2. More reliable remote desktop experience

  3. Can be run as windows startup job

For those who want to give the new version a try, here is the release link PersistentWindows

Enjoy!

3

Your problem sounds like a variation of the one described here, which is also caused by loss of the HDMI handshake. The same hardware solution might work for you: place an Apogee 3x1 HDMI mini switcher between the PC and the TV, and it will make the PC think it isn't disconnected. I don't know whether any HDMI switcher will work or just the Apogee recommended at the above link.

2

After months of frustration and finally finding this thread, I found a workaround that seems to work for my single display setup (Windows 7 x64 + 24" Insignia TV). This is a generalization of the solution by David M., with the following advantages:

  • HDMI/DVI adapter not required
  • Can use VGA cable instead of DVI cable + adapter
  • Keep HDMI audio output (vital for my TV, which only supports audio line-in for its blurry analog VGA input)

However, a free VGA (PC) input on TV is needed, and two cables get committed to the setup:

  1. Connect PC to TV with HDMI cable
  2. Also connect PC to TV with VGA cable
  3. Control Panel > Display > Multiple displays > Duplicate these displays

Alternatively, DVI cable + DVI/HDMI adapter in step 2 also worked; the key observation was David M. pointing out that DVI works fine.

Now, when I power cycle or change input sources on my TV, the windows don't shrink or stack onto the top left. Not sure if this all worked just because my TV is so low-end...

2

The issue is caused by an annoy "feature" of Windows 7/8 to re-arrange application windows when HDMI/Display port connected monitor/TV "turned off" or "switch to" different input.

There is a hardware workaround if you use HDMI connection. Search ebay for "monitor detection" and get one around $20. It works for me on a Seiki 39" 4K TV with HDMI connection.

1

I was having the same problem on my LG 42" TV. After reading the posts here about spoofing the signal to Windows I thought of something. I had an extra DVI-HDMI adapter I no longer used. Plugged that into the DVI port on my video card and then the HDMI into that and no longer get the issue of windows re-sizing and whatnot. So it happened to be a really easy fix. You can get them at RadioShack or pretty much any electronics store. I'm glad I got this sorted out. Hopefully it works for others.

1

Researching the same problem, I found this thread claiming it can be repaired by messing around in the registry. I also found a thread by a guy who claimed it was a result of using DisplayPort.

I tried the registry fix, and it didn't seem to work (although I didn't reboot, if that makes a difference). Additionally, my misbehaving device is connected to a displayport on my graphics card from a DVI port on my monitor, and unfortunately I can't confirm the second account since I don't have appropriate adapters. But, I thought it might be useful.

Edit: ok, I got desperate and actually drove out to borrow a cable for this attempt. Changing from a DVI-I cable with DVI/DisplayPort adapter cable to a single-cable DVI-I/HDMI cable has fixed this for me. To me this suggests either that it is indeed a problem with DisplayPort, as suggested by the guy on HardForum, or that it's a side effect of using cable adapters. Either way, happy to be done with it.

1

If you're using ATI you will need to create a new key in the registry under HKEY_LOCAL_MACHINE > System called DMMEnableDDCPolling. Set the Value to 0. It disables the video card from polling to see if something is still connected basically.

If you're using something other than ATI search the registry for the key DMMEnableDDCPolling and set the value to zero. NOTE: THE KEY CAN EXIST IN MORE THAN ONE PLACE. From what I read you must replace the value with 0 for every instance of that key.

Source.

1

Not a fix, but a workaround. I noticed that if you minimize windows before the display is powered off and do not restore them until the display has returned, then the windows are not rearranged.

I leverage that fact to provide a 'seamless' experience for myself as I have documented here: http://thelamprechts.blogspot.com/2014/09/a-windows-workaround-to-maintain-window.html

1
  • Link is dead, post is useless. Jun 21, 2022 at 9:40
1

This is a super old question, but I actually have a really simple fix for Windows 10 users (It may work for 7 and 8, not sure).

I specifically wanted my windows to remember their positions, and was using a KVM to switch between two computers, but whenever I'd switch back, all the windows would move back to the primary monitor.

I found that if you click the small "Minimize All Windows" sliver in the bottom right, on your taskbar, before you make the switch, when you come back you can just click it again and the windows will return to their previous positions.

1

If you don't want to install any additional software or buy a specialized hardware device, you can workaround by minimizing all open windows before turning off that monitor. You can quickly achieve this by using the Show Desktop button at the end of the taskbar. When you come back to that monitor just click the Show Desktop button again and it'll restore all open windows the way they were.

1
  • Welcome to Super User! Before answering an old question having other answers ensure your answer adds something new or is otherwise helpful in relation to them. Here is a guide on How to Answer. There is also a site tour and a help center. ... by minimizing all open windows ... was mentioned by others some time ago. Jan 12, 2023 at 13:51
0

In case anyone else encounters this, I'll just add my "fix". I found out that Windows 8.1 resized all of my windows/programs and such, when I put them on my TV. (Connected to my laptop, through a HDMI port.) I had to access the screen resolution menu, choose "Make text and other items larger or smaller", choose "Lad me choose one size for alle monitors" And then let them stay at 100%. DONE!

0

I had a similar issue since upgrading a Windows 10 machine to TH2 in November 2016.

Due to the various side effects a TV power cycle was having on my apps and desktop I eventually realized that turning off and on the TV caused Windows 10 to trigger a change of resolution and/or font size/DPI.

After some research I forced the same DPI for all my displays, virtual and physical by doing the following:

  • Go in Control Panel\Appearance and Personalization\Display.
  • Click on set custom scaling level.
  • Set it to whatever works for you. 100% was working fine for me.

Here is a link on how to adjust scaling.

0

I had this issue with a computer going to screen saver. When it resumed, my windows were re sized. I solved it by changing to another screen saver and then reverting back to the "photos slide show" screen saver.

1
  • Please read the question again carefully. Your answer does not answer the original question, which is about switching monitor inputs not screen savers.
    – DavidPostill
    Apr 20, 2016 at 22:39
0

I was able to stop this resolution change by going into catalyst control center and turning on force edid emulation. Fixed!! Of course you need an AMD card and this feature needs to be present but I guess NVIDIA should have something like this too.

1
  • For NVIDIA, save the monitor EDID information the set the driver to load information from that file as described here.
    – Ed Randall
    Feb 7, 2021 at 8:50
0

Easy workaround: “Windows Key + m” prior to switching and “Windows Key + Shift + m” when you have returned to that computer. I wrote a small script, which does that automatically. Works perfectly.

You must log in to answer this question.

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