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