Even with all of the innovation that is happening today, little flaws still happen in our ever accelerating technology world. For example, I hate it when applications are running but the window is not visible on my monitor. The scenario for me seems to happen after being either in a dual monitor situation (like presenting) or when I'm going back and force from docking to undocking. This has been an issue for years, and even in our own applications. My guess is that this is due to either the application and/or the O/S restoring the window to a previously used X/Y coordinate but upon showing again those coordinates are off the "active desktop" window. Today's missing window for me was Office Communicator.

Maybe it's just me, but I don't think its apparent on how to restore a window (which is why I'm blogging this). I can see the application in the task bar, but I can't get to the window. If you right click on application in the taskbar, one will fine the MOVE option. (You can also see Restore, but that doesn't help in this situation since most applications restore back to the same spot.) Here is where the breakdown occurs: after clicking on MOVE, what next?

We need to add some visual indicators to show the next potential activities.  I'd love to see an option that says "MOVE TO DESKTOP". Anyway, selecting MOVE on the context menu places the mouse on the title bar of the selected application. I've tried using the mouse to move the window but that doesn't do it (whether clicking or not). There are some tricks to grab it with the mouse - but the easiest option here is to use the arrow keys. For example, hold down the Left Arrow and you might get lucky. After you move the window just a little, you can then use the mouse to move the window.

The problem here is not Windows Vista (although it could help) - but the real issue is the application's code for handling window restoration (in other words, redisplaying a window on a monitor that is not existent). Under the Windows Vista User Experience Guide, there is a link to Window Management which has some excellent guidance. I include a couple of points from the persistence section:

  • When a window is redisplayed, consider displaying it in the same state as last accessed.
    • When closing, save the monitor used, window size, location, and state (maximized vs. restore). When redisplaying, restore the saved window size, location, and state using the appropriate monitor. Also, consider making these attributes persist across program instances on a per-user basis.
    • Excellent advice! I'd also like to add that if the window is outside the current monitor view, move the window into more appropriate coordinates.

Thank you for allowing to me vent.