diff --git a/CHANGELOG.md b/CHANGELOG.md index 32b2657..a73da20 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -70,6 +70,7 @@ Fixes - Fixed RootElement.CanSelectContent and Element.IsSelected returning incorrect results when CanBeSelected changes - Fixed dropdowns with some non-selectable children failing to navigate when using gamepad controls - Fixed UiMetrics.ForceAreaUpdateTime being inaccurate for nested elements +- Fixed tooltips sometimes ignoring manually set IsHidden values Removals - Marked StyleProp equality members as obsolete diff --git a/MLEM.Ui/Elements/Element.cs b/MLEM.Ui/Elements/Element.cs index f191585..db48ed3 100644 --- a/MLEM.Ui/Elements/Element.cs +++ b/MLEM.Ui/Elements/Element.cs @@ -151,7 +151,7 @@ namespace MLEM.Ui.Elements { /// Set this property to true to cause this element to be hidden. /// Hidden elements don't receive input events, aren't rendered and don't factor into auto-anchoring. /// - public bool IsHidden { + public virtual bool IsHidden { get => this.isHidden; set { if (this.isHidden == value) diff --git a/MLEM.Ui/Elements/Tooltip.cs b/MLEM.Ui/Elements/Tooltip.cs index 62d92ef..885f5f9 100644 --- a/MLEM.Ui/Elements/Tooltip.cs +++ b/MLEM.Ui/Elements/Tooltip.cs @@ -29,6 +29,9 @@ namespace MLEM.Ui.Elements { /// Note that is still applied with this value set. /// public virtual Vector2? SnapPosition { get; set; } + + /// + public override bool IsHidden => this.autoHidden || base.IsHidden; private TimeSpan delayCountdown; private bool autoHidden; @@ -167,10 +170,8 @@ namespace MLEM.Ui.Elements { } } if (this.autoHidden != shouldBeHidden) { - // only auto-hide if IsHidden wasn't changed manually - if (this.IsHidden == this.autoHidden) - this.IsHidden = shouldBeHidden; this.autoHidden = shouldBeHidden; + this.SetAreaDirty(); } }