private void InternalSetDockState(DockState value)
{
if (this.m_dockState == value)
return;
DockState oldDockState = this.m_dockState;
INestedPanesContainer oldContainer = this.NestedPanesContainer;
this.m_dockState = value;
this.SuspendRefreshStateChange();
IDockContent contentFocused = this.GetFocusedContent();
if (contentFocused != null)
this.DockPanel.SaveFocus();
if (!this.IsFloat)
this.DockWindow = this.DockPanel.DockWindows[this.DockState];
else if (this.FloatWindow == null)
{
// ****************************
this.FloatWindow = this.DockPanel.FloatWindowFactory.CreateFloatWindow(this.DockPanel, this);
}
if (contentFocused != null)
this.DockPanel.ContentFocusManager.Activate(contentFocused);
this.ResumeRefreshStateChange(oldContainer, oldDockState);
}