@@ -13,6 +13,8 @@ namespace FlaxEditor.GUI.Tabs
|
|||||||
[HideInEditor]
|
[HideInEditor]
|
||||||
public class Tab : ContainerControl
|
public class Tab : ContainerControl
|
||||||
{
|
{
|
||||||
|
internal Tabs _selectedInTabs;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the text.
|
/// Gets or sets the text.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -86,5 +88,25 @@ namespace FlaxEditor.GUI.Tabs
|
|||||||
{
|
{
|
||||||
return new Tabs.TabHeader((Tabs)Parent, this);
|
return new Tabs.TabHeader((Tabs)Parent, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void OnParentChangedInternal()
|
||||||
|
{
|
||||||
|
if (_selectedInTabs != null)
|
||||||
|
_selectedInTabs.SelectedTab = null;
|
||||||
|
|
||||||
|
base.OnParentChangedInternal();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
public override void OnDestroy()
|
||||||
|
{
|
||||||
|
if (IsDisposing)
|
||||||
|
return;
|
||||||
|
if (_selectedInTabs != null)
|
||||||
|
_selectedInTabs.SelectedTab = null;
|
||||||
|
|
||||||
|
base.OnDestroy();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -263,7 +263,12 @@ namespace FlaxEditor.GUI.Tabs
|
|||||||
// Check if index will change
|
// Check if index will change
|
||||||
if (_selectedIndex != index)
|
if (_selectedIndex != index)
|
||||||
{
|
{
|
||||||
SelectedTab?.OnDeselected();
|
var prev = SelectedTab;
|
||||||
|
if (prev != null)
|
||||||
|
{
|
||||||
|
prev._selectedInTabs = null;
|
||||||
|
prev.OnDeselected();
|
||||||
|
}
|
||||||
_selectedIndex = index;
|
_selectedIndex = index;
|
||||||
PerformLayout();
|
PerformLayout();
|
||||||
OnSelectedTabChanged();
|
OnSelectedTabChanged();
|
||||||
@@ -342,8 +347,13 @@ namespace FlaxEditor.GUI.Tabs
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
protected virtual void OnSelectedTabChanged()
|
protected virtual void OnSelectedTabChanged()
|
||||||
{
|
{
|
||||||
|
var selectedTab = SelectedTab;
|
||||||
SelectedTabChanged?.Invoke(this);
|
SelectedTabChanged?.Invoke(this);
|
||||||
SelectedTab?.OnSelected();
|
if (selectedTab != null)
|
||||||
|
{
|
||||||
|
selectedTab._selectedInTabs = this;
|
||||||
|
selectedTab.OnSelected();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
|
|||||||
Reference in New Issue
Block a user