private void SetActiveDocument(ContentDocument pane, bool updatePaneOrder)
{
SetIcon(pane);
if (!_panes.Contains(pane))
{
AddDocument(pane);
}
if (_currentPane != pane)
{
if (ActiveDocumentChanging != null)
{
ActiveDocumentChanging(pane);
}
if (updatePaneOrder)
{
_panesInOrderUsed.Remove(pane);
_panesInOrderUsed.Insert(0, pane);
}
if ((pane != _panes[0]) && (pane.TabWidth == 0))
{
// if this pane's tab is not visible, move it to the start
_panes.Remove(pane);
_panes.Insert(0, pane);
}
if (_currentPane != null && _currentPane.Control != null)
{
_currentPane.Control.WindowDeactivated();
}
_currentPane = pane;
AttachTabContextMenu(pane);
pane.Control.DockingContainer.Text = pane.Name;
DockData dockData = GetDockData(pane);
if (pane.Control.DockingContainer == null || pane.Control.DockingContainer.IsDisposed)
{
pane.Control.DockingContainer = new DockingContainer(pane.Control);
}
pane.Control.DockingContainer.Show(_dockPanel, dockData);
pane.Control.DockingContainer.Focus();
pane.Control.WindowActivated();
}
// Do this even if the pane hasn't changed, to ensure
// that the property grid is refreshed
if (ActiveDocumentChanged != null)
{
ActiveDocumentChanged(pane);
}
RefreshWindowsMenu();
}