Browse Source

Fixed ProjectBrowserPad selecting the currently opened file.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@5537 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Daniel Grunwald 16 years ago
parent
commit
3196f5838b
  1. 19
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserPad.cs

19
src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserPad.cs

@ -145,25 +145,36 @@ namespace ICSharpCode.SharpDevelop.Project @@ -145,25 +145,36 @@ namespace ICSharpCode.SharpDevelop.Project
projectBrowserPanel.Clear();
}
string lastFileName;
bool activeContentChangedEnqueued;
void ActiveContentChanged(object sender, EventArgs e)
{
// this event may occur several times quickly after another (e.g. when opening or closing multiple files)
// do the potentially expensive selection of the item in the tree view only once after the last change
if (!activeContentChangedEnqueued) {
activeContentChangedEnqueued = true;
WorkbenchSingleton.SafeThreadAsyncCall(ActiveContentChangedInvoked);
}
}
void ActiveContentChangedInvoked()
{
activeContentChangedEnqueued = false;
if (WorkbenchSingleton.Workbench.ActiveContent == this) {
projectBrowserPanel.ProjectBrowserControl.PadActivated();
} else {
IViewContent content = WorkbenchSingleton.Workbench.ActiveViewContent;
// we don't use ActiveViewContent here as this is the ActiveContent change event handler
IViewContent content = WorkbenchSingleton.Workbench.ActiveContent as IViewContent;
if (content == null)
return;
string fileName = content.PrimaryFileName;
if (fileName == null || lastFileName == fileName) {
if (fileName == null) {
return;
}
if (!FileUtility.IsValidPath(fileName)) {
return;
}
lastFileName = fileName;
projectBrowserPanel.SelectFile(fileName);
}
}

Loading…
Cancel
Save