Community
Participate
Working Groups
Console views and other output only views (e.g. JUnit Test Results) should show up without taking away focus from the currently active part. There is currently no way to do this and the workaround is remember the previously active view, show the ouput view, and then give focus back the previously active view. This results in some quick activation flicker. It would be better to have a showView method that can shows a part without activating it.
Should add this, and use it for bug 15821.
Need to also consider what this means for a fast view. Without focus, it probably will not show up (maybe that's what we want?)
Erich, please describe the desired behaviour for when the view is a fast view. Normally it's only visible if it has focus.
For some cases, it may make sense to open the fast view if needed, but not show it. For example, if show in type hierarchy is selected on open type, the editor should have focus and the hierarchy should be available, but it need not be initially visible. In other cases, e.g. console output or showing new errors in the task list (not currently supported), you may want to make it visible.
Just an idea I want to write down before I forget. It may not be possible to be correct all the time when in comes to fast view (i.e option one: open as fast view but do not show, option two: open as fast view and show with focus). Maybe the API needs a extra parameter to indicate the "policy" they want to use concerning fast views.
Post 2.0.
Reopen for investigation
I've commited the initial draft of this to head. Fast views are made visible and activated in all cases currently.
I'm going to leave the behaviour as is unless someone objects. Feel free to reopen.
This was broken with the addition of the presentation work. It works fine in general, except when the view being opened is in the same folder as the view that currently has focus. In this case, the new view steals focus.
Kim, is this the same case as we were seeing with the dynamic debug views getting activated?
There's a strong possibility that it is. It wouldn't surprise me at all.
The API work here is complete. Still some bugs to address.
Fix in HEAD along with some supporting tests and API clarification.
I notice that getViewStack has been changed to getViewReferenceStack and now returns IViewReference []. It still takes an IViewPart as the argument though. Also note that we generally only include "reference" in the name if it's needed to disambiguate it with an existing non-reference-based method. Suggest changing to IViewReference[] getViewStack(IViewReference).
Nick, getViewReferenceStack is an internal private method that is used to drive getViewStack(IViewPart) and showBusyView (also private). It takes a view part because the two methods that uses it have to work with parts, not references. It's only a utility method, not API.
Woops. Thanks for clarifying.
Verified in 200405190010 by tests.
Closing to keep a tidy house. Pardon the spam.