diff --git a/Source/Editor/GUI/Tree/TreeNode.cs b/Source/Editor/GUI/Tree/TreeNode.cs
index 95c2acaa2..8755b940d 100644
--- a/Source/Editor/GUI/Tree/TreeNode.cs
+++ b/Source/Editor/GUI/Tree/TreeNode.cs
@@ -148,7 +148,6 @@ namespace FlaxEditor.GUI.Tree
else if (Parent is Tree tree)
_tree = tree;
}
-
return _tree;
}
}
@@ -613,12 +612,6 @@ namespace FlaxEditor.GUI.Tree
{
base.Update(deltaTime);
}
- else
- {
- // Manually update tooltip
- if (TooltipText != null && IsMouseOver)
- Tooltip.OnMouseOverControl(this, deltaTime);
- }
}
///
@@ -1006,6 +999,21 @@ namespace FlaxEditor.GUI.Tree
base.OnDragLeave();
}
+ ///
+ public override bool OnTestTooltipOverControl(ref Vector2 location)
+ {
+ return TestHeaderHit(ref location) && ShowTooltip;
+ }
+
+ ///
+ public override bool OnShowTooltip(out string text, out Vector2 location, out Rectangle area)
+ {
+ text = TooltipText;
+ location = _headerRect.Size * new Vector2(0.5f, 1.0f);
+ area = new Rectangle(Vector2.Zero, _headerRect.Size);
+ return ShowTooltip;
+ }
+
///
protected override void OnSizeChanged()
{
diff --git a/Source/Engine/UI/GUI/Control.cs b/Source/Engine/UI/GUI/Control.cs
index 4117822c1..9c85ac9b7 100644
--- a/Source/Engine/UI/GUI/Control.cs
+++ b/Source/Engine/UI/GUI/Control.cs
@@ -593,7 +593,7 @@ namespace FlaxEngine.GUI
_isMouseOver = true;
// Update tooltip
- if (ShowTooltip)
+ if (ShowTooltip && OnTestTooltipOverControl(ref location))
{
Tooltip.OnMouseEnterControl(this);
SetUpdate(ref _tooltipUpdate, OnUpdateTooltip);
@@ -608,10 +608,18 @@ namespace FlaxEngine.GUI
public virtual void OnMouseMove(Vector2 location)
{
// Update tooltip
- if (_tooltipUpdate == null && ShowTooltip)
+ if (ShowTooltip && OnTestTooltipOverControl(ref location))
{
- Tooltip.OnMouseEnterControl(this);
- SetUpdate(ref _tooltipUpdate, OnUpdateTooltip);
+ if (_tooltipUpdate == null)
+ {
+ Tooltip.OnMouseEnterControl(this);
+ SetUpdate(ref _tooltipUpdate, OnUpdateTooltip);
+ }
+ }
+ else if (_tooltipUpdate != null)
+ {
+ SetUpdate(ref _tooltipUpdate, null);
+ Tooltip.OnMouseLeaveControl(this);
}
}