New Window Management Features for Visual Studio 2005


As I’ve mentioned before, I own feature area testing outside of Accessibility Testing.  One of the feature areas i own is Window Management.  Here is a listing of some of the new Window Management features you’ll see in the Technology Preview release.


File Tab Channel


 


File Tab Channel


 


Behavior:



  • Files enter channel from left to right
  • Files drop off when there is no more room on channel
  • Menu drop down listed on the right-hand side shows all files, whether they are still on the file channel or have been dropped off
  • Shark-fin tabs allow user to better differentiate the active file from the inactive ones
  • The design keeps your most active files on the left-side of the channel 

 


IDE Navigator


 


IDE Navigator


 


Behavior:



  • Similar to the windows alt-tab dialog, this dialog is shown by pressing Ctrl+Tab, keeping the ctrl key depressed
  • All open tool windows and open files are shown in the IDE Navigator
  • Dismissing the IDE Navigator will set focus on the selected item, either tool window or file 

 


Tool Window Docking

Tool Window Docking Targets

 



 



  • Docking Targets – provide easy way to drop a tool window exactly where you want it to go
  • Improved docking model
  • 5 states a tool window can be in

    • Floating
    • Dockable
    • Tabbed Document (in the mdi space)
    • AutoHide
    • Hide

  • The transition between states has changed.  In Visual Studio .NET 2003, the user could toggle the dockable state.  For example, to make the tool window undockable, the user unchecked the “Dockable” state.  Now, if the user were to try to do that, nothing would happen.  This is because tool windows now move to a new state, instead of toggling states.  To make a dockable tool window undockable, the user must move to the “Tabbed Document” state.

 Let me know your thoughts!

Comments (55)

  1. Todd Spatafore says:

    "The design keeps your most active files on the left-side of the channel" Do the tabs continually change position then as I click on them so that the most active files are always on the left, or is it counted in the background and rearranged when reopening the project?

  2. milbertus says:

    I’ve used the tool window docking features a bit in the CTP, and it’s a nice improvement over VS 2003. While it does take a bit of getting used to, once you have it makes it a lot easier to get the tool windows to end up where you want them, instead of hoping for the best.

  3. Dylan Greene says:

    Image links are broken.

    Can you put up a prototype so we can try it?

    How about these features:

    1) Ability to drag tabs to change their ordering (like moving columns around in Explorer).

    2) Mouse-over the tab shows a tooltip with a thumbnail preview of that document.

    3) Tear a tab off to make it a new window.

  4. sara ford says:

    Pictures are fixed now. Thanks!

  5. Ian Ringrose says:

    How do you doc window without using a mouse?

    How does the IDE navigator work with "SickyKey", I thought that the CTRL key would be release after the first press of the Tab key.

  6. someone says:

    It would also be easier if it were a bit more lenient on whether to detect a mouse over.. it’s weird to have to drag a window exactly to the drop icon, instead of just to somewhere around the region where you want the window. Probably "the closest drop icon" would be a good metric.

    Anyhow my #1 pet peeve about Visual Studio is the C++ class view. Look at this:

    namespace Blah

    {

    void Foo();

    }

    namespace Blah

    {

    void Foo()

    {

    MessageBox(0,"Hello",0,0);

    }

    }

    Having this in a cpp file, or the first part in a .h and the other in a cpp, will spawn TWO instances of Foo in the class view, both pointing to the implementation. This is quite annoying, to say the least. This is probably not the right place to post this, but you’re the VS IDE blogger with the most recent posting 😉

  7. Catatonic says:

    Dylan: I’d worry that if I could drag the tabs around, and tear them off, I would end up doing it by accident more often than not. Once in a while I still accidentally drag the Outlook or VC6 menu bar into its own window. And never do it on purpose.

  8. Jonathan MacCollum says:

    Wow, thats awesome!

    I’ve been waiting for better file control from vs.

    Keep up the great work!

  9. Andreas Hber says:

    When looking at the first picture, am I correct in saying that ‘Textfile5.txt’ and ‘Textfile7.txt’ are active and the rest are dropped? If so, then it’s quite hard to distinguish them. Some more visual cues would be nice.

    Also, will it be possible to display one source-file at each monitor on the system? The best would be to have an option to make a tab-bar float like a tool window. That way you can move it to another monitor.

    For example working with interop-stuff I like to have source-files for the unmanaged version of a library in one vertical tab-bar and the managed version on another tab-bar. To have one tab-bar at each monitor is a little hassle right now. First you have to make the VS window non-maximized and size it so it fits as much space as you need. Then you have to resize the tab-bars so that each is placed on it’s own monitor… With the tool windows I can just make them float and drag them out of the VS window and move them over to another monitor. Since I often maximize windows and move windows between monitors, I’ve created a little hotkey to do so. So having the tool window as the foreground window I hit the hotkey and the tool-window is maximized on the secondary monitor 🙂

    The ctrl+tab navigation window looks really nice btw!

  10. sara ford says:

    Todd: it’s the user’s interaction that causes the most recently used files to pile up on the left-hand side. For example, say i’m working with files 1 through 4, 4 being on the left side and 1 on the right side. Say i’m working a lot on file 1, and i open file 5. Say the tab channel is only big enough for 4 files, so 1 falls off. When i go to the drop down to open file 1, it will reenter on the left-side. Now i have files 1, 5, and 4 on the left, which are my most currently-used files.

    milbertus: Yes, i agree. Whenever i have to do something in Everett, i think to myself, "wow, how did i ever do tool window docking before?" <grins>

    Dylan:

    1) For tool windows that are tab-docked (docked together), you can use the tool window tabs to change the tool window ordering in that group. Is that what you are asking for?

    2) I’m not sure i follow. Do you want to preview a file in the file tab channel when you hover over.

    3) I’ll put this down as a feature request.

    Thanks!

    -sara

  11. sara ford says:

    Ian,

    With focus on a tool window, press Alt+Hyphen. This will drop down a system menu for the tool window. Arrow down once and you’ll hit Move, the only item in the menu. Then you can use your arrow keys to move the tool window around. Also, the docking targets will show. When you’re over a docking target, press Enter.

    The IDE Navigator will respond to sticky keys. With sticky keys enabled, press Ctrl and release. Then press Tab and release. The IDE navigator will remain until the user presses either ESC (to dismiss) or Enter (to cause a selection).

    thanks!

    -sara

  12. sara ford says:

    someone: I know the people who own testing the class view. i’ll forward this to them.

    Andreas Hber: In the first picture, only TextFile5 is active. All others are inactive. I am currently editing TextFile5. The jpg image isn’t all that great, as i don’t post pictures all that often, considering this is an accessibility blog. <grins> Anyways, another visual cue is that the sharkfin for TextFile5 appears slightly over the TextFile6 tab.

    As for the second monitor, i’ll forward this request back to the team, as we get this request a lot.

    Thanks!

    -sara

  13. Don says:

    I routinely have a dozen files open in VS2003, and I find the file-closing behavior incredibly annoying. There is no behavior in any piece of software that I use regularly that I hate as much as the behavior of the file tabs in VS2003.

    Call me old fashioned, but I like to order my open files manually. I like related files to be next to each other, regardless of the order in which they were opened. I can drag tabs around to get the order I want, but when it comes time to close those files I end up having to play stupid games with the VS2003 tab-order selection gods. There are four files next to each other. I want to close them. I select the first and close it — ZAP — the active tab is now 15 tabs away and I have to scroll back just to be able to see the file that I want to close. Close the next window — ZAP — the active tab is once again 15 tabs away. Scroll back. Repeat.

    Every time I close a file (eg. dozens/hundreds of times a day) I despise this behavior.

    Limiting the number of tabs is not a good solution to this problem. It’s an incredibly bad solution, because it (1) ignores the root problem that VS2003 maintains a hidden file-order stack that is independent of the tab-order stack and (2) in introduces an arbitrary restriction on the number of open files that will absolutely interfere with the ability of users to perform certain kinds of operations.

    Crazy Browser (www.crazybrowser.com) implements tabbed browsing in IE. It’s a wonderful program, and the tabbing behavior is fantastic. Simple, predictable, and always what I want. I highly recommend that you play with it a bit to see how well it works. It behaves precisely the way I want VS Whidbey/whatever to behave.

    The logic is as follows:

    Opening a site adds a tab to the right of the current tab and activates the new tab (there is an option to control whether the newly added tab is activated or not, which is handy for slow-loading sites). This not only prevents the focus from jumping large distances across the tab stack, but also provides automatic context sorting because new tabs are added in the area where the user was working when they became interested in the new file.

    Closing a tab removes the tab and selects the tab to the left of the removed tab. Extremely simple. Always predictable. Never causes the selection to move more than one tab.

    Please please please consider providing an option for this type of behavior. It is a MUCH better fit to the way I think and work than the current VS2003 tab behavior, and I strongly suspect that it is still an equally better behavior for people like me than the logic that you described in the post above.

    thanks,

    -Don

  14. Mitch Walker says:

    Multi-Mon! Multi-Mon! Multi-Mon!

    Please! 🙂 🙂

  15. So far, it looks like quite an improvement on the rather halfhearted tab interface of VS.NET 2003. Well done!

    What isn’t clear to me is how the user can interact with the tabs. Do they support context menus, for example, and if so what’s on them…or are they dumb like the ones in VS.NET 2003.

    For quite some time I’ve used Oz Solomonovich’s WndTabs add-in for VC6 (http://www.wndtabs.com/wt/tour/), and I have to say that the lack of comparable features in VS.NET is incredibly annoying.

    I’d very strongly recommend you go and have a look at the features it offers and see if you can give us some of that functionality in VS.NET 2005. The Tab grouping and window and file management commands in particular (e.g. "close all tabs except this one" or "auto open header file") are *extremely* useful.

    WndTabs also gives the user control over what appears in the tabs, and how they should be arranged. That’s infinitely prefereable to hardcoding it in the IDE.

    Cheers,

    Anna

  16. John Cousins says:

    It would be great if you could put a quick ‘close tab’ facility on the right of each tab, a la (clears throat) C# Builder; this would give the user the ability to single-click-close a document, rather than either having to either right-click and select the ‘Close’ context menu option, or move the mouse all the way over to the right of the File Tab Channel to close it.

  17. Docking targets are not a substitute for a useable means of arranging windows. They impose an unnecessary indirection between where I want a window to be and where I need to drag it. They are sometimes redundant and sometimes not. They’re small. They’re not at the easy-to-target edges of the screen.

    Instead, increase the size of the space that will cause a window to dock in a particular location. For example, add a dragged window to an existing tool tab group if it is released anywhere over one of the windows currently in the group. For screen edges, consider showing a grayed target window, of the size and shape the dragged window will take if released at that moment, whenever the mouse cursor approaches. Then, require a double-click on the title bar to switch between the floating and dockable states.

    The five possible tool window states are confusingly implemented in the May Whidbey preview. First, I instictively interpret the check boxes as being independent (cf. check boxes) not exclusive (radio buttons). Second, the auto-hide state has to be unselected (toggling), before another state can be chosen. I’d like to be able to drag an auto-hiding window. Third, a dockable window can be dragged into the MDI space and become a tabbed document, but cannot be dragged out. Fourth, "dockable" is not a state, it’s a capability; call it "docked" and set the state to floating if the window isn’t docked.

    A couple of other suggestions. It would be nice if tab groups that closed together reopened together. I like to keep all my debug windows (breakpoints, call stack, locals, etc.) together. When I need more room for them, I’ll float them onto my second monitor. Sometime I accidently close them instead of redocking them, and it’s annoying to have to open each one individually. I’d also appreciate a "Locate in Solution Explorer" item in the context menu for a document’s tab. There may be a toolbar button for this, but it’s not as natural a location for it.

    Finally, I’ll echo the request for more commands that operate on the visible tab order and not the hidden z-order. Is there a way to focus the tab immediately to the left or right of the current one? If not, there should be. Automatically closing infrequently used windows, while possibly a useful feature, is not a substitute for an environment that makes it easy to work with many open documents at once. Have you considered using multiple rows of tabs?

  18. secretGeek says:

    the improved docking targets are a great feature. Kudos to the inventors, coders and testers who came up with these improvements.

    It took me about six months in VS2003 before i could reliably dock a window. now in whidbey ir will be so much more intuitive. (i’ve only seen demonstrations of this so far, but am very much impressed)

    cheers

    Leon

  19. Here’s an old post of mine about&amp;nbsp;the new Tool Window docking model, the File Tab Channel, and the…

  20. Thogek says:

    > Files enter channel from left to right

    Do we know if there is a way to configure this behavior?

    Maybe it’s just me, but I find it maddening when I open a new file, and the new tab appears on the left, pushing all existing tabs to the right. I generally expect newly-opened or -added items to be added to the end of the list — i.e., on the right — and if I want to move it someplace else, I will. So, with the current open-on-the-left behavior, I’m perpertually opening files and dragging the resulting tabs around to the "correct" (for me) order.

    Thanks.

  21. Barry Hart says:

    Eclipse has some window management features I really like – not only can you drag and drop tabs to change the order, but you can also set a maximum number of editor windows open at a time; also you can "pin" certain editor windows open so they will not be closed in spite of the maximum.

    Typically I set the maximum to 8 or 10, but I pin the two or three files I’m making most of my changes to. I also drag those files to the far left to make them easy to find.

    Very simple and elegant, very useful.

  22. A commonly-asked question.&amp;nbsp; By default, the general development settings profile will set the Find…

  23. Today’s tip comes from “some cool dev” who wrote the new Window Management features for Visual Studio…

  24. Albert says:

    "> Files enter channel from left to right "

    From a prvious post, I concur about the window tab coming in to the left instead of the right of any open document windows. I have still not been able to get the hang of it. Why was it even switched? In VS 2003 they opened to the right of any existing window tabs. The windows task bar works left to right, so do most applications. Could it have been an outsourcing to a different country for the coding of the window management? Cause english reads left to right, and orders items that way, some other languages don’t, so they should at least give an option to change which direction the newly opened windows should go.

  25. WildSignals says:

    The new files open in the channel from the left, which is not intuitive to me.  New things should be on the right like reading (from left to right).  Excel opens a new sheet with a tab on the right.  VS2005 should be able to configure this with a dropdown in Tools, Options, Environment, General.  

    New tabs open:

    –> Toward the left

    –> Toward the right

  26. Frustrated says:

    I find the tabs to be very frustrating. Other applications seem to handle tabs more intuitively (Firefox) with addons to configure the desired behavior.

    Why is there such a lack of configuration options? Does anyone know of any addons that will allow us to configure this behavior?

    Suggestions:

    – ADD TABS ON THE RIGHT!!!!

    – no limit of tabs, "squish" the width of tabs when there are too many

    – when closing tab, jump to left/right instead of previously viewed.

    – add a close "X" button to each tab.

    These don’t have to defaults, why are we being forced into one behavior? There are so many applications/plugins that provide great configurability, you would thing that a company with the resources Microsoft has would be able to do even better!

    Even VS 6.0 has better tab handling with the WndTab add in!

  27. Shah says:

    Worst tabbing experience ever. I would have imagined improvement in this area from VS 2003 to 2005, but I think its worst.

  28. Aric says:

    I agree, this is much worse than 2003.  I have to click a drop down menu just to find out if I have more files open than tabs displayed?!  Before I could just look at the screen.  There was a visual indicator that your tabs were scolled off to the side when you had too many open.

    Also, if you manually arrange the tab order, but the some of the ones you want are off the screen, that’s a pain.  I’ll often have 20 or 30 even 50 files open.  On the left I manually order my say, 5 most important source files I’m currently editing.  On the right I usually arrange config or text data files I’m working with.  I manually order them that way so I can switch between them positionally without having to read the truncated filenames on the tabs.  You just eliminated everything that was good about tabs in 2003.

  29. Al says:

    Please for pities-sake add ‘close all but this’ functionality to the IDE tabs. Also a wndtabs-like button to flip between the .cpp and .h files is a must have.

  30. Matt says:

    I agree with Aric, the file tab ordering is much worse.  I have many files that are nested within directories and its a complete pain in the you-know-what to figure out which file is which because the filename gets hacked off (even in the IDE Navigator.  Not to mention the fact that my files start jumping around depending on their use.  I would love to see an option to use VS2003 tab-features if you want.

  31. Swami says:

    Another very annoying problem im VS 2005 tabs is that if my filename is long (for example, if my file is under a folder, the folder name precedes the file name, making the entire name pretty long), only the partial file name is displayed on the tab, with "…" to indicate that the file name was cut…for example,

    Controls/Display…otos.ascx instead of Controls/DisplayMyPhotos.ascx.

    The main problem is that even the dropdown list on the right corner that lists all the files displays  the partial names, so I have an incredibly tough time locating my files when I have multiple files open.  Either there should be a configuration option that allows to us choose whether we want the folder name preceding the file name or not, or the drop down list should display the entire filename instead of the partial name.

  32. Tim says:

    I agree with the others who dislike the new tabbing functionality.  I actually noticed the disappearing tab issue in SQL Server Management Studio, since it uses the same interface as Visual Studio 2005.  I was working on several queries at once and when I tried to look at a query I was working on 2 minutes before I couldn’t find it in the tab bar and thought it strange, since it was just there not 2 minutes ago I thought.  After a while of scratching my head I realized that I didn’t close it by mistake but that it got pushed off the tab bar and into the drop down menu.

    I used to not like tabs opening on the left, seemed completely counter-intuitive, but now I hate that tabs disappear from the tab bar.  And I especially notice the problems of truncated names in the tab drop down menu while editing stored procedures in Visual Studio since their names get truncated and with my naming conventions nearly all the items looks the same in the menu making it completely useless.

    There’s almost nothing to like about the new tabbing functionality in the 2005 products.

  33. Swami says:

    The ability to create multiple tab rows would be cool….not multiple horizonal and vertical tab groups (which already exist), but multiple tab rows for the same window.

  34. Swami says:

    What would be really nice and space-saving is to have the code view as a 3rd option (button) at the bottom-left of the aspx page (next to the Design and Source buttons)….I think that’s where it really belongs anyway and plus you woulnd’t have to work about integrating the code-behind file to the top tab strip.

  35. RespectYourCustomers says:

    I completely agree with "Frustrated".

    It is frustrating to see people who think they have great ideas come in and change the UI of a product that has been on the market for years, and prevent existing users from regaining the old behavior. Product designer hubris.

    VS 2003 had new tabs start on the right. VS 2005 starts them on the left. Small thing. Big impact. Imagine if your start button suddenly moved from bottom left to top right. You get confused. You must learn new habits. It annoys you. It costs time. Furthermore, in case Microsoft hadn’t noticed, the typical user does not spend their day staring at the top left of the screen. Hellooo!

    This is a disruptive change to a habitual, instinctive working process. Why would MS not make this a simple configuration option?

    Wake up product managers and UX people. You need to respect the fact that these tiny changes to your customers’ instictual working habits are highly disruptive and ultimately cost us money as the accumulation of these changes erodes our productivity during a rather long learning curve. This is unpleasant.

  36. AK says:

    Yet another frustration from Microsoft.  The tabbing is incredibly annoying.  Do they actually use their own products?  I hope one day there will be another company that rules and that actually understands their customers.

  37. Another Annoyed VS 2005 User says:

    So, I take it from reading these responses that there is no way to make VS 2005 use the 2003 tab strip order/method?  Ugh…this sucks.  It’s such a struggle going from one code file to the next when you have a lot of files open.

  38. Mads Milter says:

    I agree with those who are annoyed with the new tab behaviors. Is there a patch or update on the way, which will allows users to turn this behavior off?

    I often end up closing all my open files, and then re-open those I was searching for… Please bring back the "normal" behavior again!

    The Ctrl+Tab feature is ok, because we can still use Ctrl-F6 to switch the old fashioned way.

  39. annoyed too says:

    I can’t stand this new tab opening logic. It’s simply retarded. Or maybe I’m the retarded one, but please let your retarded users like myself turn that thing back to where it was. I do not have time to spend rewiring my whole brain to a new, unnatural behavior.

  40. Petar Repac says:

    Please, please, OPEN TABS ON THE RIGHT, or allow us to configure this behavior.

  41. Steven Fry says:

    It is amazing that it isn’t an option to have the new tabs appear on the right. Why in the world would you change something so fundamental and not allow users to have it work the way just about every other product on the market behaves?

  42. nim says:

    Yes please fix multiple tab rows.. just simply several rows.

    And please make an option to enable grouping of files with the same title.. such as MyClass.cpp and MyClass.h.

    Please let the user define these relationships and the make a tab that displays the shared filetitle and then has two small buttons on the right with .h and .cpp on top of each other.

    And clicking the shared-file-title could toggle between the cpp and h-file (or more if you have a MyClass.txt maybe? I dunno).

    And I vote for an opening-behavior that puts opened files to the right.

    Also another nice behavior that could be implemented as an alternative or combination to other suggestions would be to replace the drop-down of inactive files with the ability to just scroll the tablist from left to right.

    if you klick and drag with middle mouse button or press the arrows in the left and right end of the tablist it scrolls left and right?

    Good luck in any case, VS2005 is nice and hope it gets even nicer!