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); } }